source: content/digarden/.stversions/20210423140625-haskell~20220309-051341.org@ 5a2b670

Last change on this file since 5a2b670 was 5a2b670, checked in by Mikhail Kirillov <w96k@…>, on Oct 6, 2022 at 12:37:40 PM

Add digital garden

  • Property mode set to 100644
File size: 1.6 KB
Line 
1#+title: Haskell
2Функциональный язык программирования со строгой статической типизацией с выводом
3типов.
4
5https://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"лишних" скобок -}
33head (tail (tail "abcd")) -- 'c'
34head $ tail $ tail "abcd" -- 'c'
35-- того же эффекта иногда можно достичь использованием композиции
36(head . tail . tail) "abcd" -- 'c'
37head . tail . tail $ "abcd" -- 'c'
38#+end_src
Note: See TracBrowser for help on using the repository browser.