けいぞうのメモ帳

言語設計のお勉強

2017-07-27から1日間の記事一覧

haskell のcereal package example

{-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DeriveGeneric #-} module Main where import Data.Serialize import GHC.Generics data Dist = Dist { distInt :: Int, distString :: String } deriving (Generic, Show) instance Serialize Dist main :…

Data.Binary.GetのGet MonadにおけるMonadFail

できること Get Monadの中でControl.Monad.Fail.failを実行すると、runGetOrFailのときにLeftを取ることが出来る。 runGetOrFailが取る引数はユーザが定義した任意の構造体へのdecoderであるGet Monadのため、 Get Monadの失敗をユーザがハンドルできる。 Mo…