Project

General

Profile

Haskell » History » Version 32

Grigoriy Volkov, 05/31/2019 02:40 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 14 Grigoriy Volkov
"Stack cookbook":https://guide.aelve.com/haskell/stack-cookbook-ai0adh03
22 4 Grigoriy Volkov
23 5 Grigoriy Volkov
h2. snippets
24
25
* [[HaskellMaybeChecks]]
26
* [[HaskellTypeLevelMachine]]
27
28 9 Grigoriy Volkov
h2. ghci debugging
29
30
<pre>
31
:set -fbreak-on-error -fbreak-on-exception
32
:trace machineMain
33
:force _exception
34
:hist
35
:back
36
</pre>
37
38 1 Grigoriy Volkov
h2. libs
39
40 16 Grigoriy Volkov
* "co-log":https://kowainik.github.io/posts/2018-09-25-co-log
41 12 Grigoriy Volkov
* "named":https://github.com/monadfix/named arguments
42 6 Grigoriy Volkov
* "binary-parsers":https://www.stackage.org/lts-13.5/package/binary-parsers-0.2.3.0
43 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.
44
* "SBV: SMT Based Verification":https://leventerkok.github.io/sbv/ — translates Haskell functions on custom symbolic types
45
* "refined":http://nikita-volkov.github.io/refined/ — refinement types <pre>type ProperFraction = Refined (And (Not (LessThan 0)) (Not (GreaterThan 1))) Double</pre>
46
* "hedgehog":https://github.com/hedgehogqa/haskell-hedgehog — random test gen (QuickCheck)
47 13 Grigoriy Volkov
* "dejafu":https://github.com/barrucadu/dejafu — concurrency testing
48 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
49
* "Data.Sequence":http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Sequence.html — list with fast append on both sides
50 3 Grigoriy Volkov
51
h2. exts
52
53 16 Grigoriy Volkov
* "Existential Quantification":https://ocharles.org.uk/guest-posts/2014-12-19-existential-quantification.html
54 3 Grigoriy Volkov
* "RebindableSyntax":https://ocharles.org.uk/guest-posts/2014-12-06-rebindable-syntax.html — overloading built-in operators / do notation
55
* "NullaryTypeClasses":https://ocharles.org.uk/posts/2014-12-10-nullary-type-classes.html — global implementation of one thing
56 5 Grigoriy Volkov
* "DataKinds":http://ponies.io/posts/2014-07-30-typelits.html , TypeFamilies (+ GHC.TypeLits) — type-level annotations
57
** "Basic Type Level Programming in Haskell":https://www.parsonsmatt.org/2017/04/26/basic_type_level_programming_in_haskell.html
58
** "Parsing type-level strings in Haskell":https://kcsongor.github.io/symbol-parsing-haskell/
59
** "Servant, Type Families, and Type-level Everything":https://arow.info/blog/posts/2015-07-10-servant-intro.html
60
** "Haskell Type Names as Strings":http://www.mchaver.com/posts/2017-12-12-type-name-to-string.html
61 8 Grigoriy Volkov
62
h2. other
63
64
* "ST Monad":https://medium.com/permutive/having-your-cake-and-eating-it-9f462bf3f908 for imperative algorithms
65 11 Grigoriy Volkov
* "A Rosetta Stone for Haskell Abstractions":http://reduction.io/essays/rosetta-haskell.html Applicative, StateT, Lens
66 15 Grigoriy Volkov
* "Is it possible to place inequality constraints on haskell type variables?":https://stackoverflow.com/questions/6939043/is-it-possible-to-place-inequality-constraints-on-haskell-type-variables
67 17 Grigoriy Volkov
* "Associated Types and Haskell":http://amixtureofmusings.com/2016/05/19/associated-types-and-haskell/
68 18 Grigoriy Volkov
* "Practical uses of the Tardis monad?: 'build a packet ... where the fixed-length lengths and offsets of some variable length data are sent out before the actual data themselves'":https://www.reddit.com/r/haskell/comments/b5g70h/practical_uses_of_the_tardis_monad/ejdogtt/
69 19 Grigoriy Volkov
* "Comonadic builders":https://chshersh.github.io/posts/2019-03-25-comonadic-builders
70 20 Grigoriy Volkov
* "Typed final (aka, ``tagless-final'') style":http://okmij.org/ftp/tagless-final/ is a general method of embedding domain-specific languages (DSL)
71 22 Grigoriy Volkov
* "Control.Monad.Trans.Cont":https://hackage.haskell.org/package/transformers-0.5.2.0/docs/Control-Monad-Trans-Cont.html / "CC-delcont":https://wiki.haskell.org/Library/CC-delcont / "Delimited continuations in Haskell":http://okmij.org/ftp/continuations/Haskell-tutorial.pdf / "A Monadic Framework for DelimitedContinuations":https://www.cs.indiana.edu/~dyb/pubs/monadicDC.pdf
72 24 Grigoriy Volkov
* https://github.com/quchen/articles/blob/master/cont_monad.md
73 23 Grigoriy Volkov
* https://github.com/cohomolo-gy/haskell-resources
74 25 Grigoriy Volkov
* https://reasonablypolymorphic.com/blog/specialization/
75 26 Grigoriy Volkov
* https://github.com/ghc-proposals/ghc-proposals/pull/52
76 27 Grigoriy Volkov
* ftp://ftp-sop.inria.fr/indes/TFP15/TFP2015_submission_19.pdf
77
* https://free.cofree.io/2019/01/08/defunctionalization/
78
* https://blog.poisson.chat/posts/2018-08-06-one-type-family.html
79 28 Grigoriy Volkov
* https://gist.github.com/Icelandjack/5afdaa32f41adf3204ef9025d9da2a70
80 29 Grigoriy Volkov
* https://ryanglscott.github.io/2019/05/26/on-the-arity-of-type-families/ https://www.microsoft.com/en-us/research/uploads/prod/2019/03/ho-haskell-5c8bb4918a4de.pdf
81 30 Grigoriy Volkov
* http://conal.net/blog/posts/overloading-lambda
82 32 Grigoriy Volkov
* HKD:
83
** http://web.archive.org/web/20190501095522/https://www.benjamin.pizza/posts/2017-12-15-functor-functors.html
84
** https://reasonablypolymorphic.com/blog/higher-kinded-data/ 
85
** https://github.com/jcpetruzza/barbies#readme
86
** https://github.com/i-am-tom/higgledy