do式はbindの糖衣構文
do式はbindの糖衣構文
elm,scalaのandThen
code:haskell
m >>= f >>= g
code:haskell
do x <- m -- アクションmの結果をxに束縛. アクションから値を取り出す
y <- f x -- xにアクションfを適用した結果をyに束縛
g y -- yにアクションgを適用
doブロックの各行はbindで結ばれている
code:hs
main = do
print "hello"
print "world"
main = -- 上と同じ
print "hello" >>= \_ ->
print "world"
わかりやすいmrsekut.icon
code:doあり.hs
hoge x = do
foo <- m
bar <- mFunction x
m''
return $ foo + bar
code:doなし.hs
hoge x = (
m >>= (\foo ->
mFunction x >>= (\bar ->
m'' >>= (\_ ->
return $ foo + bar
))))