Haskell/語法糖
< Haskell
- Description of syntactic sugar
Summary of the various uses of syntactic sugar in Haskell
Functions 編輯
- For more information, see the chapter 深入函數
description | sweet | unsweet |
---|---|---|
sections | (+2) (3-) |
\x -> x + 2 \x -> 3 - x |
Lists 編輯
description | sweet | unsweet |
---|---|---|
lists | [1,2,3] |
1:2:3:[] |
arithmetic sequences | [1..5] [1,3..9] [1..] [1,3..] |
enumFromTo 1 5 enumFromThenTo 1 3 9 enumFrom 1 enumFromThen 1 3 |
list comprehensions | [ x | (x,y) <- foos, x < 2 ] |
let ok (x,y) = if x < 2 then [x] else [] in concatMap ok foos |
Records 編輯
Do and proc notation 編輯
description | sweet | unsweet |
---|---|---|
Sequencing | do putStrLn "one" putStrLn "two" |
putStrLn "one" >> putStrLn "two" |
Monadic binding | do x <- getLine putStrLn $ "You typed: " ++ x |
getLine >>= \x -> putStrLn $ "You typed: " ++ x |
Let binding | do let f xs = xs ++ xs putStrLn $ f "abc" |
let f xs = xs ++ xs in putStrLn $ f "abc" |
Layout 編輯
- For more information on layout, see the chapter on 縮進