スタートHaskell第4回 まとめ

お疲れ様でした。 個人的に読み返したいツイートを #start_haskellハッシュタグから拾ってまとめました。 話の流れによっては時間を前後させてまとめています。
3
鯉江 @koie

parsec3:設定ファイルとかユーザに近いところ attoparsec:httpヘッダ #start_haskell

2011-11-13 14:28:25
Keisuke UTO @utotch

Paserc3 と attoparsec を併用したりするらしい。attoparsec はエラーメッセージが不親切だけど速い #start_haskell

2011-11-13 14:28:03
でこすけ @dekosuke

Parsecの入門、"Write Yourself a Scheme in 48 Hours" とかどうでしょう http://t.co/tA7pVc4w #start_haskell

2011-11-13 14:34:22
でこすけ @dekosuke

って還暦プログラマの人のはそれの解説ですか #start_haskell

2011-11-13 14:35:34
Keisuke UTO @utotch

Haskell の 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/

竹辺靖昭 @beketa

memoizeしたりはしていないのでしたっけ? #start_haskell

2011-11-13 14:35:36
蟷螂 | kamakiri01 @kamakiri_ys

ハットン本はバックトラックするので効率は悪いが、parsecは捨てるのではやい。状態を戻したいときはtryを使う #start_haskell

2011-11-13 14:36:47
Nobuo Yamashita @nobsun

パーザコンビネータの基本の基本は"Implementing Functional Language: a tutorial"を読むと良くわかります.MonadもApplicativeも出てこないので怖くないです.#start_haskell

2011-11-13 14:40:34
Nobuo Yamashita @nobsun

パーザコンビネータの基本的なところだけを知るには ghcのbaseパッケージにあるText.ParserCombinators.ReadPを読むよいいかもです.手前味噌ですがこんなのもどうぞ http://t.co/Wja4Sbiv #start_haskell

2011-11-13 15:04:47

続いて9章の発表

蟷螂 | kamakiri01 @kamakiri_ys

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

でこすけ @dekosuke

ghciで:i IOって打つとRealWorldという単語が #start_haskell

2011-11-13 15:13:05
蟷螂 | kamakiri01 @kamakiri_ys

true == true == true == .. を簡約するには、左の==から簡約していかないといけない。 >>=も流れとしては同じ #start_haskell

2011-11-13 15:13:16
Nobuo Yamashita @nobsun

むしろ,パターンマッチがWHNFを要求するので順番が決まるのでは? #start_haskell

2011-11-13 15:12:14
山本和彦 @kazu_yamamoto

.@nobsun その通りですが、何か問題でも? #start_haskell

2011-11-13 15:13:32
日比野 啓 (Kei Hibino) @khibino

.@kazu_yamamoto @nobsun まあ case は遅延評価ではない。 とはっきり言ってしまうのはそれなりに分かりやすいんじゃないかと #start_haskell

2011-11-13 15:18:00
慎ましく暮らす人 @qtamaki

getChar :: IO Char 文字が返るのではなくて、文字を読み込む命令書が返る #start_haskell

2011-11-13 15:20:31
蟷螂 | kamakiri01 @kamakiri_ys

IO Charは命令ではなくて命令書なので、簡約されて副作用を起こすのはランタイム。 #start_haskell

2011-11-13 15:20:42