Programming Languages

Haskell is the epitome of many of the successes of strong type systemsand some of the worst programming language decisions made.

This is an incredible breakdown of how GHCworks. Absolutely worthlearning if you want to learn more about the language, but I'm not sureto what degree it's worth spending time on now.

GitHub - thma/WhyHaskellMatters: In this article I try to explain whyHaskell… is an overview ofthe language and why it matters.



Search for programs using their type. This is the aspect of Haskellthat's most appealing: with more information encoded into the typesystem - safety guarantees aside - we get far, far better program searchand reuse - because our types generally express the functionality of theprogram! Being able to reuse code is incredibly nice for lots ofreasons.

https://aaronguo1996.github.io/project/hoogleplus/ hoogle plus ::search for combinations of functions with hoogle! This is also athttps://hoogleplus.goto.ucsd.edu/.

Simple Haskell

is a movement to program in only a simple, disciplined subset of thelanguage, in order to build a robust foundation of beginner-friendlycode that's easy to onboard programmers to without digging into theweeds of scary monads and typeclasses. Simple Haskell preludes exist toreplace the default prelude, and the discipline usually recommends a setof language extensions to get everyone started.

Write JuniorCode: Aplea for Haskell developers to actually write code that people canunderstand and hire for. Boring HaskellManifestoalso describes this, as does SimpleHaskell. It's very possible that moretime has been spent pontificating about Haskell than actually writingproduction code in the service… My thoughts on Haskell in 2020 - MarcoSampellegrini.

Haskell mini-patterns handbook ::Kowainik: Abook of Haskell design patterns. (I recall reading this on a particularlunch break out of the Skira office; the ideas sunk in at the time andcould 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 isaccursedUnutterablePerformIO?Creating GHC RewriterulesRuntime Support for Multicore Haskell: a Retrospective \| SIGPLANBlog:On multicore Haskell. One of the biggest benefits of pure functionalprogramming is parallel computation, so this better work well. TypeTechnology Tree : ezyang’sblog: How to considerdifferent Haskell language extensions. What do they mean? How can theybe 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 HaskellTutorial, and another:https://github.com/leonidas/codeblog/blob/master/2011/2011-12-27-template-haskell.md


GitHub - tathougies/hos: The functional Haskellkernel: a kernel for a Haskelloperating system. (What?) Paweł Szulc - Maintainable SoftwareArchitecture in Haskell (with Polysemy)-…Hasktorch: A Comprehensive Haskell Library for DifferentiableFunctional Prog…Implementing Linear Haskell -YouTube Lambda calculuson the type level with GHC 7.11.20151212. ·GitHub


Comonads \|   Bartosz Milewski's ProgrammingCafe Categorytheoryhttps://ncatlab.org/nlab/show/comonad#definitionMath Haskell and CategoryTheory Categorytheory Category Theory \|Haskell LanguageTutorialhttp://www.haskellforall.com/2013/02/you-could-have-invented-comonads.html

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

creating project:

stack new Other simple
stack setup
getting ncurses5-compat-libs:

Proofs in Haskell?

things to remake in haskell (and maybe racket!)

https://m.youtube.com/watch?v=FYTZkE5BZ-0 :: makemusic with haskell fromscratch


GitHub - davdar/parsing-with-derivatives-haskell: The original parsingwith d…:Parsing with derivatives, as the parser maps to one! Very cool idea.Haskell for all: Introductions to advanced HaskelltopicsLocally Namelessdjinn: Generate Haskell code from atype! With an associatedblog post: Let’s play a game : ezyang’sblog. Conal Elliott» Blog Archive » “Everything is a function” inHaskell?linear algebra libraryimplemented and experimented with in Haskell. accelerate: An embeddedlanguage for accelerated arrayprocessing: