スタートHaskell第4回 まとめ
- kamakiri_ys
- 2942
- 0
- 1
- 0
Paserc3 と attoparsec を併用したりするらしい。attoparsec はエラーメッセージが不親切だけど速い #start_haskell
2011-11-13 14:28:03Parsecの入門、"Write Yourself a Scheme in 48 Hours" とかどうでしょう http://t.co/tA7pVc4w #start_haskell
2011-11-13 14:34:22Haskell の Parsec3 もしくは attoparsec のわかりやすい解説を誰か書いてくれると、私が喜びます。#start_haskell
2011-11-13 14:35:12-Parsec3とattoparsec
Parsec3
attopersec
attopersecの速さ
http://www.serpentine.com/blog/2010/03/03/whats-in-a-parser-attoparsec-rewired-2/
メモ化してくれる parser はたぶん pappy とか frisby とか http://t.co/nR2V6Zz5 http://t.co/OChYXQTu #start_haskell
2011-11-13 14:43:06ハットン本はバックトラックするので効率は悪いが、parsecは捨てるのではやい。状態を戻したいときはtryを使う #start_haskell
2011-11-13 14:36:47パーザコンビネータの基本の基本は"Implementing Functional Language: a tutorial"を読むと良くわかります.MonadもApplicativeも出てこないので怖くないです.#start_haskell
2011-11-13 14:40:34パーザコンビネータの基本的なところだけを知るには ghcのbaseパッケージにあるText.ParserCombinators.ReadPを読むよいいかもです.手前味噌ですがこんなのもどうぞ http://t.co/Wja4Sbiv #start_haskell
2011-11-13 15:04:47続いて9章の発表
9章。IOを扱うプログラムは入力によって副作用が出る。よって、IO前とIO後は、違う状態の”World(世界)”として扱う #start_haskell
2011-11-13 15:05:11-do記法によるIO
9章スライド8枚目
echo = do
c <- getChar -- 1.戻り値があるとき
putChar c -- 2.副作用だけ必要
-- 戻り値は捨てる
echo = getChar >>= \c -> putChar c
true == true == true == .. を簡約するには、左の==から簡約していかないといけない。 >>=も流れとしては同じ #start_haskell
2011-11-13 15:13:16.@kazu_yamamoto @nobsun まあ case は遅延評価ではない。 とはっきり言ってしまうのはそれなりに分かりやすいんじゃないかと #start_haskell
2011-11-13 15:18:00IO Charは命令ではなくて命令書なので、簡約されて副作用を起こすのはランタイム。 #start_haskell
2011-11-13 15:20:42