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