home


[糖衣構文]

Haskellでは,基本構文の別表現である,糖衣構文がいくつかあります. 糖衣構文はプログラムの記述能力を拡張するわけでは無く,単純に人の読み書きのしやすさのためのものです.

1. $

$は$以降を一つのまとまりとします.括弧で括る代わりに使えます.パイプラインをつなげていくときに便利です.
*Main> abs 2-3
-1
*Main> abs (2-3)
1
*Main> abs $ 2-3
1

2. do記法

Haskellにおける入出力において,入出力を表す値や出力は">>"でつないでいきますが, do記法では同じことを簡潔に書けます.
*Main> putStr "Hello" >> putStr " " >> putStrLn "world"
Hello world
*Main> do {putStr "hello"; putStr " "; putStrLn "world"}
hello world
do記法の内部で"<-"を用いることで,「文字列を一行読み込むことを表す値」から,実際にその文字列を取り出すことが出来ます. 以下の例では,キーボードから"Hi"を入力しています.
*Main> getLine >>= (\ str -> if str=="Hi" then putStrLn "Hello" else putStrLn "Pardon?")
Hi
Hello
*Main> do {str <- getLine; if str=="Hi" then putStrLn "Hello" else putStrLn "Pardon?"}
Hi
Hello