![](images/coffee-without-effects.png){width=450} | ![](images/coffee-without-effects-list.png){width=450 .fragment} |
```java int x; ``` | ```haskell x :: Int ``` |
```java int f(int x) ``` | ```haskell f :: Int -> Int ``` |
```java
static |
```haskell f :: a -> a ``` |
```java
static |
```haskell f :: a -> a ``` |
```java f(x); ``` | ```haskell f x ``` |
```java f(x, y); ``` | ```{.fragment .haskell} f x y ``` ```{.fragment .haskell} f x y = (f x) y ``` |
```java
static |
```haskell f :: a -> a g :: a -> a ``` |
```java f(g(x)); g(f(x)); ``` | ```haskell f (g x) g (f x) ``` |
Наша самодеятельность | В стандартной библиотеке |
```haskell IntList ``` | ```haskell [Int] ``` |
```haskell Nil ``` | ```haskell [] ``` |
```haskell Cons ``` | ```haskell : ``` |
```haskell Cons 3 (Cons 4 Nil) ``` | ``` {.fragment .haskell } 3 : 4 : [] ``` ``` {.fragment .haskell } [3, 4] ``` |