関数型プログラミング言語Haskell Part15
■ このスレッドは過去ログ倉庫に格納されています
0358329=343=349=352
2011/08/11(木) 14:46:03.01>>343の「なんで?」は、>>329でいう「見返り」がなぜ、
>>330の「言語仕様で直接副作用を扱わなくてもよくなるアプリケーションプログラマには何のメリットもない見返り」と断定できるのか、断定できないでしょ、という修辞的疑問。
で、「Parsecをdo記法で書けるのはすげー便利だが」と次の段落で、アプリケーションプログラマにとってメリットのある見返りを例示する、というのが意図した文章構成。
> プログラムのレイアウトのレベルの問題だと思うのだが
そうだね。でも、do記法は実際にアプリケーションプログラマにとって便利だよね。
その便利な記法を、さまざまな型・用途に柔軟に使えるようにしているのが、HaskellのMonadクラス。
>>354
> 演算子を定義しても良い。>>351みたいに。
scala知らないからテキトーだが、>>351の例から推して量るに、例えば 「2001-01-03 10:10」っていうようなフォーマットを解析するのに
number ~ "-" ~ number ~ "-" ~ number ~ " " ~ number ~ ":" ~ number ^^ { case (y,_,m,_d,_h,_,m) => (y,m,d,h,m) }
って書くのかな。
そういう一回リストや配列で返すことが強制されるよりも
do
y <- number
string "-"
m <- number
string "-"
d <- number
string " "
h <- number
string ":"
m <- number
return (y,m,d,h,m)
って書くほうが、読みやすく、仕様変更に応じて手を加えるのにミスしにくい、とオレは思う。
しかし、そうは思わないという人が多いのであれば、これ以上はなんとも。
■ このスレッドは過去ログ倉庫に格納されています