## Lectures - Lecture 1 [[md](https://github.com/ikoHSE/sc-lectures/blob/master/1.md)] [[web](https://ikohse.github.io/sc-lectures/1.html)] [[Seminar](https://github.com/ikoHSE/sc-task-1)] [[YouTube Lecture](https://youtu.be/jvUErSlMu40)] [[YouTube Seminar](https://youtu.be/U3hLUHdUNBE)] - [Functions](http://learnyouahaskell.com/starting-out#babys-first-functions) - [Pattern matching](http://learnyouahaskell.com/syntax-in-functions#pattern-matching) - [Product types](http://learnyouahaskell.com/making-our-own-types-and-typeclasses#algebraic-data-types) - [Where](http://learnyouahaskell.com/syntax-in-functions#where) - [Sum types](http://learnyouahaskell.com/making-our-own-types-and-typeclasses#algebraic-data-types) - [Lambdas](http://learnyouahaskell.com/higher-order-functions#lambdas) - Functions of multiple arguments - [Currying](http://learnyouahaskell.com/higher-order-functions#curried-functions) - [Lists](http://learnyouahaskell.com/starting-out#an-intro-to-lists) - [Quicksort](http://learnyouahaskell.com/recursion#quick-sort) - [Parametric polymorphism in structures](http://learnyouahaskell.com/making-our-own-types-and-typeclasses#type-parameters) - Lecture 2 [[md](https://github.com/ikoHSE/sc-lectures/blob/master/2.md)] [[web](https://ikohse.github.io/sc-lectures/2.html)] [[Seminar](https://github.com/ikoHSE/sc-task-2)] [[YouTube Lecture](https://youtu.be/oRGSA_drOQE)] [[YouTube Seminar](https://youtu.be/vXJPfBwUu08)] - [Record syntax](http://learnyouahaskell.com/making-our-own-types-and-typeclasses#record-syntax) - [Typeclasses](http://learnyouahaskell.com/types-and-typeclasses#typeclasses-101) - [Typeclass instances](http://learnyouahaskell.com/making-our-own-types-and-typeclasses#typeclasses-102) - [Case](http://learnyouahaskell.com/syntax-in-functions#case-expressions) - [Polymorphic typeclass instances](http://learnyouahaskell.com/making-our-own-types-and-typeclasses#typeclasses-102) - [`Monoid` typeclass](http://learnyouahaskell.com/functors-applicative-functors-and-monoids#monoids) - [`fold`](http://learnyouahaskell.com/higher-order-functions#folds) - [Deriving](http://learnyouahaskell.com/making-our-own-types-and-typeclasses#derived-instances) - [Type synonyms](http://learnyouahaskell.com/making-our-own-types-and-typeclasses#type-synonyms) - Error handling - [`Maybe`](https://hackage.haskell.org/package/base-4.12.0.0/docs/Data-Maybe.html#t:Maybe) - [`Either`](https://hackage.haskell.org/package/base-4.12.0.0/docs/Data-Either.html#t:Either) - [`Functor`](http://learnyouahaskell.com/functors-applicative-functors-and-monoids#functors-redux) - [`Alternative`](https://hackage.haskell.org/package/base-4.12.0.0/docs/Control-Applicative.html#t:Alternative) - Lecture 3 [[md](https://github.com/ikoHSE/sc-lectures/blob/master/3.md)] [[web](https://ikohse.github.io/sc-lectures/3.html)] [[Seminar](https://github.com/ikoHSE/sc-task-3)] [[YouTube Lecture](https://youtu.be/8aio5zZoDY8)][[YouTube Seminar](https://youtu.be/W6Qfz4Wsjek)] - [`Monad`](http://www.learnyouahaskell.com/a-fistful-of-monads) - [`Reader`](http://learnyouahaskell.com/for-a-few-monads-more#reader) - [`do` syntax](https://en.wikibooks.org/wiki/Haskell/do_notation#Translating_the_bind_operator) - [`mapM`](https://hackage.haskell.org/package/base-4.12.0.0/docs/Control-Monad.html#v:mapM) - [`State`](https://wiki.haskell.org/State_Monad) - [`Applicative`](http://learnyouahaskell.com/functors-applicative-functors-and-monoids#applicative-functors) - Lecture 4 [[md](https://github.com/ikoHSE/sc-lectures/blob/master/4.md)] [[web](https://ikohse.github.io/sc-lectures/4.html)] - [Transformers](https://mmhaskell.com/monads/transformers) - [`MonadState`](https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-State-Class.html#t:MonadState) - [`MonadError`](https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-Except.html#t:MonadError) - [`Compose`](https://hackage.haskell.org/package/base-4.14.0.0/docs/Data-Functor-Compose.html#t:Compose) - [`StateT`](https://hackage.haskell.org/package/transformers-0.5.6.2/docs/Control-Monad-Trans-State-Lazy.html#t:StateT) - [`ExceptT`](https://hackage.haskell.org/package/transformers-0.5.6.2/docs/Control-Monad-Trans-Except.html#t:ExceptT) - [`MonadTrans`](https://hackage.haskell.org/package/transformers-0.5.6.2/docs/Control-Monad-Trans-Class.html#t:MonadTrans) - [`Read`](https://hackage.haskell.org/package/base-4.14.0.0/docs/Prelude.html#t:Read) - [`IO`](https://www.haskell.org/tutorial/io.html) - [`MonadIO`](https://hackage.haskell.org/package/base-4.14.0.0/docs/Control-Monad-IO-Class.html#t:MonadIO)