Haskell
- tags :: {Programming Languages}
Haskell is the epitome of many of the successes of strong type systems and some of the worst programming language decisions made.
This is an [incredible breakdown of how GHC works]. Absolutely worth learning if you want to learn more about the language, but I'm not sure to what degree it's worth spending time on now.
[GitHub -
thma/WhyHaskellMatters: In this article I try to explain why Haskell...]
is an overview of the language and why it matters.
Search for programs using their type. This is the aspect of Haskell
that's most appealing: with more information encoded into the type system -
safety guarantees aside - we get far, far better program search and reuse -
because our types generally express the functionality of the program! Being able
to reuse code is incredibly nice for lots of reasons.
[https://aaronguo1996.github.io/project/hoogleplus/]hoogle plus ::
search for *combinations* of functions with hoogle! This is also at
[https://hoogleplus.goto.ucsd.edu/.]
is a movement to program in only a simple, disciplined subset of the
language, in order to build a robust foundation of beginner-friendly code
that's easy to onboard programmers to without digging into the weeds of
scary monads and typeclasses. Simple Haskell preludes exist to replace the
default prelude, and the discipline usually recommends a set of language
extensions to get everyone started.
[Write Junior
Code]: A plea for Haskell developers to actually write code that
people can understand and hire for. [Boring
Haskell Manifesto] also describes this, as does [Simple Haskell].
It's very possible that more time has been spent pontificating about Haskell
than actually writing production code in the service... [My thoughts on
Haskell in 2020 - Marco Sampellegrini].
[Haskell mini-patterns handbook :: Kowainik]: A book of Haskell design
patterns. (I recall reading this on a particular lunch break out of the Skira
office; the ideas sunk in at the time and could be applied to our class PL code.
We should have used it).
There are many resources written with this practice in mind.
[How
Accursed and Unutterable is accursedUnutterablePerformIO?]
[Runtime Support for Multicore Haskell: a Retrospective | SIGPLAN Blog]
: On multicore Haskell. One of the biggest benefits of pure functional
programming is parallel computation, so this better work well.
[Type
Technology Tree : ezyang’s blog]: How to consider different Haskell
language extensions. What do they mean? How can they be applied? How do we
determine when to use them?
[GHC.Generics]: Datatype-generic functions that programmers can use
and reuse, parameterizing them.
[An excellent
Template Haskell Tutorial], and another:
[https://github.com/leonidas/codeblog/blob/master/2011/2011-12-27-template-haskell.md]
[GitHub -
tathougies/hos: The functional Haskell kernel]: a kernel for a Haskell
operating system. (What?)
[Paweł Szulc - Maintainable Software Architecture in Haskell (with Polysemy)
-...]
[Hasktorch: A Comprehensive Haskell Library for Differentiable Functional
Prog...]
[Implementing Linear Haskell - YouTube]
[Lambda calculus
on the type level with GHC 7.11.20151212. · GitHub]
[Comonads | Bartosz Milewski's Programming Cafe]
[https://ncatlab.org/nlab/show/comonad#definition]{Math}
[Haskell and Category Theory] {Category theory}
[Category Theory | Haskell Language Tutorial]
[http://www.haskellforall.com/2013/02/you-could-have-invented-comonads.html]
creating project:
[https://m.youtube.com/watch?v=FYTZkE5BZ-0]:: make {music}
with haskell from scratch
[GitHub -
davdar/parsing-with-derivatives-haskell: The original parsing with d...]
: Parsing with derivatives, as the parser maps to one! Very cool idea.
[Haskell for all: Introductions to advanced Haskell topics]
[djinn:
Generate Haskell code from a type]! With an associated blog post:
[Let’s
play a game : ezyang’s blog].
[Conal
Elliott » Blog Archive » “Everything is a function” in Haskell?]
[linear]
algebra library implemented and experimented with in Haskell.
[accelerate: An embedded language for accelerated array processing]:
Utilities
Hoogle
Simple Haskell
GHC
TemplateHaskell
Interesting
Categories
Getting Started
Setting Up Stack
wget https://get.haskellstack.org/stable/linux-x86_64-static.tar.gz
rm -rf linux-x86_64-static.tar.gz
export PATH=$PATH:./s
Creating a project
stack new Other simple
stack setup
getting ncurses5-compat-libs:
Proofs in Haskell?
things to remake in haskell (and maybe racket!)
etc