# 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```

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