Line | |
---|
1 | #+title: Haskell
|
---|
2 | Функциональный язык программирования со строгой статической типизацией с выводом
|
---|
3 | типов.
|
---|
4 |
|
---|
5 | https://learnxinyminutes.com/docs/ru-ru/haskell-ru/
|
---|
6 |
|
---|
7 | Инструменты:
|
---|
8 | - GHC :: компилятор
|
---|
9 | - Hugs :: старый компилятор, который не используется
|
---|
10 | - GHCI :: REPL
|
---|
11 | - GHCId :: IDE-подобный REPL (с поддержкой Cabal)
|
---|
12 | - Cabal и Stack :: Утилиты сборки
|
---|
13 | - HLint :: Линтер
|
---|
14 | - Hindent :: Форматирование
|
---|
15 | - Hackage :: Пакеты Haskell
|
---|
16 | https://hackage.haskell.org
|
---|
17 | - Hoogle :: Что-то вроде apropos для Haskell
|
---|
18 | https://hoogle.haskell.org
|
---|
19 |
|
---|
20 | Элементы:
|
---|
21 |
|
---|
22 | - Анонимная функция
|
---|
23 | \x -> x * 10
|
---|
24 | map (\x -> x * 10) [1..5] -- [10, 20, 30, 40, 50]
|
---|
25 |
|
---|
26 | #+begin_src haskell
|
---|
27 | {- Управление приоритетом вычисления
|
---|
28 | В Haskell есть функция `$`, которая применяет
|
---|
29 | свой первый аргумент ко второму с наименьшим приоритетом
|
---|
30 | (обычное применение функций имеет наивысший приоритет)
|
---|
31 | Эта функция часто позволяет избежать использования
|
---|
32 | "лишних" скобок -}
|
---|
33 | head (tail (tail "abcd")) -- 'c'
|
---|
34 | head $ tail $ tail "abcd" -- 'c'
|
---|
35 | -- того же эффекта иногда можно достичь использованием композиции
|
---|
36 | (head . tail . tail) "abcd" -- 'c'
|
---|
37 | head . tail . tail $ "abcd" -- 'c'
|
---|
38 | #+end_src
|
---|
Note:
See
TracBrowser
for help on using the repository browser.