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 編輯

For more information, see the chapters 列表和元組 and 深入列表
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 編輯

For more information, see the chapters 理解 Monad and Arrows
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 縮進