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 缩进