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