Haskell programming in plain view

Introduction

 * Overview I ([[Media:HSKL.Overview.1.A.20160806.pdf |pdf]])
 * Overview II ([[Media:HSKL.Overview.2.A.20160926.pdf |pdf]])
 * Overview III ([[Media:HSKL.Overview.3.A.20161011.pdf |pdf]])
 * Overview IV ([[Media:HSKL.Overview.4.A.20161104.pdf |pdf]])
 * Overview V ([[Media:HSKL.Overview.5.A.20161108.pdf |pdf]])

Applications

 * Sudoku Background ([[Media:Sudoku.Background.0.A.20161108.pdf |pdf]])
 * Bird's Implementation
 * - Specification ([[Media:Sudoku.1Bird.1.A.Spec.20170425.pdf |pdf]])
 * - Rules ([[Media:Sudoku.1Bird.2.A.Rule.20170201.pdf |pdf]])
 * - Pruning ([[Media:Sudoku.1Bird.3.A.Pruning.20170211.pdf |pdf]])
 * - Expanding ([[Media:Sudoku.1Bird.4.A.Expand.20170506.pdf |pdf]])

Using GHCi

 * Getting started ([[Media:GHCi.Start.1.A.20170605.pdf |pdf]])

Using Libraries

 * Library ([[Media:Library.1.A.20170605.pdf |pdf]])

Types

 * Constructors ([[Media:Background.1.A.Constructor.20180904.pdf |pdf]])
 * TypeClasses ([[Media:Background.1.B.TypeClass.20180904.pdf |pdf]])
 * Types ([[Media:MP3.1A.Mut.Type.20200721.pdf |pdf]])
 * Primitive Types ([[Media:MP3.1B.Mut.PrimType.20200611.pdf |pdf]])
 * Polymorphic Types ([[Media:MP3.1C.Mut.Polymorphic.20201212.pdf |pdf]])

Functions

 * Functions ([[Media:Background.1.C.Function.20180712.pdf |pdf]])
 * Operators ([[Media:Background.1.E.Operator.20180707.pdf |pdf]])
 * Continuation Passing Style ([[Media:MP3.1D.Mut.Continuation.20220110.pdf |pdf]])

Expressions

 * Expressions I ([[Media:Background.1.D.Expression.20180707.pdf |pdf]])
 * Expressions II ([[Media:MP3.1E.Mut.Expression.20220628.pdf |pdf]])
 * Non-terminating Expressions ([[Media:MP3.1F.Mut.Non-terminating.20220616.pdf |pdf]])

Lambda Calculus

 * Lambda Calculus - informal description ([[Media:LCal.1A.informal.20220831.pdf |pdf]])
 * Lambda Calculus - Formal definition ([[Media:LCal.2A.formal.20221015.pdf |pdf]])
 * Expression Reduction ([[Media:LCal.3A.reduction.20220920.pdf |pdf]])
 * Normal Forms ([[Media:LCal.4A.Normal.20220903.pdf |pdf]])
 * Encoding Datatypes
 * - Church Numerals ([[Media:LCal.5A.Numeral.20230627.pdf |pdf]])
 * - Church Booleans ([[Media:LCal.6A.Boolean.20230815.pdf |pdf]])
 * - Functions ([[Media:LCal.7A.Function.20231230.pdf |pdf]])
 * - Combinators ([[Media:LCal.8A.Combinator.20240717.pdf |pdf]])
 * - Recursions ([[Media:LCal.9A.Recursion.20240418.pdf |pdf]])

Functors

 * Functor Overview ([[Media:Functor.1.A.Overview.20180802.pdf |pdf]])
 * Function Functor ([[Media:Functor.2.A.Function.20180804.pdf |pdf]])
 * Functor Lifting ([[Media:Functor.2.B.Lifting.20180721.pdf |pdf]])

Applicatives

 * Applicatives Overview ([[Media:Applicative.3.A.Overview.20180606.pdf |pdf]])
 * Applicatives Methods ([[Media:Applicative.3.B.Method.20180519.pdf |pdf]])
 * Function Applicative ([[Media:Applicative.3.A.Function.20180804.pdf |pdf]])
 * Applicatives Sequencing ([[Media:Applicative.3.C.Sequencing.20180606.pdf |pdf]])

Monads I : Background

 * Side Effects ([[Media:Monad.P1.1A.SideEffect.20190316.pdf |pdf]])
 * Monad Overview ([[Media:Monad.P1.2A.Overview.20190308.pdf |pdf]])
 * Monadic Operations ([[Media:Monad.P1.3A.Operations.20190308.pdf |pdf]])
 * Maybe Monad ([[Media:Monad.P1.4A.Maybe.201900606.pdf |pdf]])
 * IO Actions ([[Media:Monad.P1.5A.IOAction.20190606.pdf |pdf]])
 * Several Monad Types ([[Media:Monad.P1.6A.Types.20191016.pdf |pdf]])

Monads II : State Transformer Monads

 * State Transformer
 * - State Transformer Basics ([[Media:MP2.1A.STrans.Basic.20191002.pdf |pdf]])
 * - State Transformer Generic Monad ([[Media:MP2.1B.STrans.Generic.20191002.pdf |pdf]])
 * - State Transformer Monads ([[Media:MP2.1C.STrans.Monad.20191022.pdf |pdf]])


 * State Monad
 * - State Monad Basics ([[Media:MP2.2A.State.Basic.20190706.pdf |pdf]])
 * - State Monad Methods ([[Media:MP2.2B.State.Method.20190706.pdf |pdf]])
 * - State Monad Examples ([[Media:MP2.2C.State.Example.20190706.pdf |pdf]])

Monads III : Mutable State Monads

 * Mutability Background
 * - Inhabitedness ([[Media:MP3.1F.Mut.Inhabited.20220319.pdf |pdf]])
 * - Existential Types ([[Media:MP3.1E.Mut.Existential.20220128.pdf |pdf]])
 * - forall Keyword ([[Media:MP3.1E.Mut.forall.20210316.pdf |pdf]])
 * - Mutability and Strictness ([[Media:MP3.1C.Mut.Strictness.20200613.pdf |pdf]])
 * - Strict and Lazy Packages ([[Media:MP3.1D.Mut.Package.20200620.pdf |pdf]])


 * Mutable Objects
 * - Mutable Variables ([[Media:MP3.1B.Mut.Variable.20200224.pdf |pdf]])
 * - Mutable Data Structures ([[Media:MP3.1D.Mut.DataStruct.20191226.pdf |pdf]])


 * IO Monad
 * - IO Monad Basics ([[Media:MP3.2A.IO.Basic.20191019.pdf |pdf]])
 * - IO Monad Methods ([[Media:MP3.2B.IO.Method.20191022.pdf |pdf]])
 * - IORef Mutable Variable ([[Media:MP3.2C.IO.IORef.20191019.pdf |pdf]])


 * ST Monad
 * - ST Monad Basics ([[Media:MP3.3A.ST.Basic.20191031.pdf |pdf]])
 * - ST Monad Methods ([[Media:MP3.3B.ST.Method.20191023.pdf |pdf]])
 * - STRef Mutable Variable ([[Media:MP3.3C.ST.STRef.20191023.pdf |pdf]])

Monads IV : Reader and Writer Monads

 * Function Monad ([[Media:Monad.10.A.Function.20180806.pdf |pdf]])
 * Monad Transformer ([[Media:Monad.3.I.Transformer.20180727.pdf |pdf]])
 * MonadState Class
 * - State & StateT Monads ([[Media:Monad.9.A.MonadState.Monad.20180920.pdf |pdf]])
 * - MonadReader Class ([[Media:Monad.9.B.MonadState.Class.20180920.pdf |pdf]])


 * MonadReader Class
 * - Reader & ReaderT Monads ([[Media:Monad.11.A.Reader.20180821.pdf |pdf]])
 * - MonadReader Class ([[Media:Monad.12.A.MonadReader.20180821.pdf |pdf]])


 * Control Monad ([[Media:Monad.9.A.Control.20180908.pdf |pdf]])

Monoid

 * Monoids ([[Media:Monoid.4.A.20180508.pdf |pdf]])

Arrow

 * Arrows ([[Media:Arrow.1.A.20190504.pdf |pdf]])

Polymorphism

 * Polymorphism Overview ([[Media:Poly.1.A.20180220.pdf |pdf]])

Concurrent Haskell
go to [ Electrical_%26_Computer_Engineering_Studies ]