haskell

mac のネットワークやら ipv6 に困った

このページを参考にさせていただきつつ、conduit を使ってみよーと思っていましたら、どういうわけかうまくいかなかったのだわさ。 ConduitとHaskellでネットワークプロキシサーバを作る - 純粋関数空間 サンプルが動かない ここにソースがまるまるあるので…

ByteString

せっせと Haskell を勉強中。 ByteString とは 普通の String よりも便利に扱えるものらしいです。へー ByteString を使うには こんな感じに宣言を書くといいらしいですよ。 import qualified Data.ByteString.Char8 as B Prelude と関数名がかぶっているの…

Monad 則

Monad 則。 import Control.Applicative data MMaybe a = MNothing | MJust a deriving (Show, Eq) {- MMaybe を Functor のインスタンスに -} instance Functor MMaybe where fmap f (MJust a) = MJust (f a) fmap _ MNothing = MNothing {-MMaybe を Appli…

Monad の練習問題

すごい Haskell 本 13 章の 6 節に Monad を使ったサンプルを改造する練習問題がありましたので。 import Control.Monad type KnightPos = (Int, Int) type KnightHistory = [KnightPos] moveKnight :: KnightPos -> [KnightPos] moveKnight (c, r) = do (c'…

Applicative Functor

Functor を勉強したので、次は Applicative Functor です。Maybe とまったくおなじ MMaybe を定義して、アプリカティブ則を試すコードを書きました。 import Control.Applicative data MMaybe a = MNothing | MJust a deriving (Show, Eq) {- MMaybe を Func…

Haskell で Twitter public TL を取得する

練習練習。 import Text.JSON import Control.Monad import qualified Network.HTTP as H data Status = Status { user :: String, text :: String } deriving (Show) makeStatus :: JSObject JSValue -> Result Status makeStatus tweet = do userObj <- va…

Stack by Haskell

https://github.com/hon-ya/Training/tree/master/haskell/stackhaskell で stack を実装。自分の Haskell の練度が上がっていくと、stack の実装の仕方も変わっていくらしいので、練習にちょうど良いとかなんとか。 hon_ya@air:% ghci [~/git-repos/Trainin…

FizzBuzz by Haskell

https://github.com/hon-ya/Training/blob/master/haskell/fizzbuzz/myfizzbuzz.hsすごい H 本読んでるけど Haskell 書いてないと思ったので、ひとまずの FizzBuzz です。 hon_ya@air:% ghci [~/git-repos/Training/haskell/fizzbuzz] GHCi, version 7.4.1: …