Haskell » History » Version 10
Alexey Demakov, 02/04/2019 03:45 PM
1 | 1 | Grigoriy Volkov | h1. Haskell |
---|---|---|---|
2 | |||
3 | 10 | Alexey Demakov | h2. Изучение |
4 | |||
5 | Денис Москвин. Функциональное программирование на языке Haskell. stepik.org, видеокурс |
||
6 | > "Часть 1.":https://stepik.org/course/75/syllabus |
||
7 | > "Часть 2.":https://stepik.org/course/693/syllabus |
||
8 | |||
9 | "О Haskell по-человечески":https://www.ohaskell.guide |
||
10 | "Learn You a Haskell for Great Good!":http://learnyouahaskell.com |
||
11 | "Real World Haskell by Bryan O'Sullivan, Don Stewart, and John Goerzen":http://book.realworldhaskell.org |
||
12 | |||
13 | "ru.haskell— сообщество русскоговорящих Haskell-разработчиков":https://ruhaskell.org |
||
14 | > "Полезные ссылки":https://ruhaskell.org/links.html |
||
15 | |||
16 | "ru.haskell wiki":https://github.com/ruHaskell/ruhaskell/wiki |
||
17 | > "Настройка редакторов для поддержки Haskell":https://github.com/ruHaskell/ruhaskell/wiki/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B8-Haskell |
||
18 | |||
19 | 4 | Grigoriy Volkov | "Haskell Cheatsheet":http://bxt.github.io/Ludus/haskell-cheatsheet/ |
20 | 7 | Grigoriy Volkov | "haskell-trainings":https://github.com/google/haskell-trainings/releases |
21 | 4 | Grigoriy Volkov | |
22 | 5 | Grigoriy Volkov | h2. snippets |
23 | |||
24 | * [[HaskellMaybeChecks]] |
||
25 | * [[HaskellTypeLevelMachine]] |
||
26 | |||
27 | 9 | Grigoriy Volkov | h2. ghci debugging |
28 | |||
29 | <pre> |
||
30 | :set -fbreak-on-error -fbreak-on-exception |
||
31 | :trace machineMain |
||
32 | :force _exception |
||
33 | :hist |
||
34 | :back |
||
35 | </pre> |
||
36 | |||
37 | 1 | Grigoriy Volkov | h2. libs |
38 | |||
39 | 6 | Grigoriy Volkov | * "binary-parsers":https://www.stackage.org/lts-13.5/package/binary-parsers-0.2.3.0 |
40 | 1 | Grigoriy Volkov | * "concat":https://github.com/conal/concat ("z3cat":https://github.com/jwiegley/z3cat/blob/master/test/Main.hs || "smt example":https://github.com/conal/concat/blob/master/examples/src/ConCat/SMT.hs) — *"Compiling to categories":http://conal.net/papers/compiling-to-categories/* — compiler plugin for translating normal Haskell functions (on standard types) to SMT, etc. |
41 | * "SBV: SMT Based Verification":https://leventerkok.github.io/sbv/ — translates Haskell functions on custom symbolic types |
||
42 | * "refined":http://nikita-volkov.github.io/refined/ — refinement types <pre>type ProperFraction = Refined (And (Not (LessThan 0)) (Not (GreaterThan 1))) Double</pre> |
||
43 | * "hedgehog":https://github.com/hedgehogqa/haskell-hedgehog — random test gen (QuickCheck) |
||
44 | 2 | Grigoriy Volkov | * "GHC.Stack":https://hackage.haskell.org/package/base-4.10.0.0/docs/GHC-Stack.html — can get code position for DSL |
45 | * "Data.Sequence":http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Sequence.html — list with fast append on both sides |
||
46 | 3 | Grigoriy Volkov | |
47 | h2. exts |
||
48 | |||
49 | * "RebindableSyntax":https://ocharles.org.uk/guest-posts/2014-12-06-rebindable-syntax.html — overloading built-in operators / do notation |
||
50 | * "NullaryTypeClasses":https://ocharles.org.uk/posts/2014-12-10-nullary-type-classes.html — global implementation of one thing |
||
51 | 5 | Grigoriy Volkov | * "DataKinds":http://ponies.io/posts/2014-07-30-typelits.html , TypeFamilies (+ GHC.TypeLits) — type-level annotations |
52 | ** "Basic Type Level Programming in Haskell":https://www.parsonsmatt.org/2017/04/26/basic_type_level_programming_in_haskell.html |
||
53 | ** "Parsing type-level strings in Haskell":https://kcsongor.github.io/symbol-parsing-haskell/ |
||
54 | ** "Servant, Type Families, and Type-level Everything":https://arow.info/blog/posts/2015-07-10-servant-intro.html |
||
55 | ** "Haskell Type Names as Strings":http://www.mchaver.com/posts/2017-12-12-type-name-to-string.html |
||
56 | 8 | Grigoriy Volkov | |
57 | h2. other |
||
58 | |||
59 | * "ST Monad":https://medium.com/permutive/having-your-cake-and-eating-it-9f462bf3f908 for imperative algorithms |