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

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 縮進