Actions
Haskell » History » Revision 48
« Previous |
Revision 48/90
(diff)
| Next »
Grigoriy Volkov, 09/03/2019 05:12 PM
Haskell¶
Изучение¶
Денис Москвин. Функциональное программирование на языке Haskell. stepik.org, видеокурс
О Haskell по-человечески
Learn You a Haskell for Great Good!
Real World Haskell by Bryan O'Sullivan, Don Stewart, and John Goerzen
ru.haskell— сообщество русскоговорящих Haskell-разработчиков
Haskell Cheatsheet
haskell-trainings
Stack cookbook
The Haskell Phrasebook
Best practices¶
snippets¶
ghci debugging¶
:set -fbreak-on-error -fbreak-on-exception :trace machineMain :force _exception :hist :back
libs¶
- co-log
- named arguments
- refined — refinement types
type ProperFraction = Refined (And (Not (LessThan 0)) (Not (GreaterThan 1))) Double
- Data.Sequence — list with fast append on both sides
- bound: Making de Bruijn Succ Less — convenient combinators for working with "locally-nameless" terms. These can be useful when writing a type checker, evaluator, parser, or pretty printer for terms that contain binders like forall or lambda
- Workflow — computations resumable from storage (!)
- optics new lens
- SMT:
- concat (z3cat || smt example) — Compiling to categories — compiler plugin for translating normal Haskell functions (on standard types) to SMT, etc.
- SBV: SMT Based Verification — translates Haskell functions on custom symbolic types
- Testing:
- leancheck enumerative property-based testing core
- extrapolate generalize counter-examples of properties
- speculate discover properties
- fitspec refine properties by mutation
- hedgehog property
- dejafu concurrency
- type-spec: type level testing eDSL
- should-not-typecheck
- leancheck enumerative property-based testing core
- Constraints:
- HKD:
- (Reversible) Parsing:
- by Paweł Nowak (Pavel Christof?) @2004 USED NOW
- Unparse by Tillmann Rendel and Klaus Ostermann @2010
- (related) new
optics
library, alternative tolens
- https://hackage.haskell.org/package/binary
exts¶
- Existential Quantification
- RebindableSyntax — overloading built-in operators / do notation
- NullaryTypeClasses — global implementation of one thing
- DataKinds , TypeFamilies (+ GHC.TypeLits) — type-level annotations
other¶
- https://github.com/cohomolo-gy/haskell-resources
- ST Monad for imperative algorithms
- A Rosetta Stone for Haskell Abstractions Applicative, StateT, Lens
- Is it possible to place inequality constraints on haskell type variables?
- 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'
- Comonadic builders
- GHC.Stack — can get code position for DSL
- GHC's Specializer: Much More Than You Wanted to Know
- Type Classes and Constraints
- Cont:
- Tagless Final / Overloading:
- Introduction to Tagless Final
- Tagless Final Encoding in Haskell
- Typed final (aka, ``tagless-final'') style is a general method of embedding domain-specific languages (DSL)
- Overloading lambda
- TypeFamilies:
- Functional Dependencies & Type Families
- Associated Types and Haskell
- Partially applied type families GHC Proposal
- On the arity of type families + Higher-order Type-level Programming in Haskell
- Type Class Instances for Type-Level Lambdas in Haskell
- Defunctionalization for Haskell Type Families
- Haskell with only one type family
- HKD:
Updated by Grigoriy Volkov over 5 years ago · 90 revisions