In Haskell, all types are known statically at compile time. Or are they? We don’t use
Dynamic, but we don’t like to say that Haskell can’t do something. If you want dynamic typing, here you go!
Since we had a Phrasebook entry for the hashable library, it seemed appropriate to add a page on cryptonite to emphasize the contrast between regular hash functions and cryptographic hash functions. This also gave a good place to demonstrate some simple string conversions: encoding and decoding in UTF-8, and representing a byte string in hexidecimal.
Functortown is back with a lesson on the rest of the
Applicative class, the two “bird operators,”
(*>). Through three examples, we explore the sequencing role these operators play, as well as what “effects” means in the context of applicative functors. The final example is a small parsing program that showcases the utility of sometimes just throwing away your return values.
Today we add five new pages to the series on iterators, bringing the total up to 11 pages and completing the series. These pages now cover the majority of the Python itertools module. If you’ve been following along with this, the new content begins with the take while lesson. We’re looking forward to adding more Python content in the future, but that’s a wrap on iterators!
The header art for the Validation course depicts a portion of the Mandelbrot set. We’ve written a lengthy discussion of the Haskell code that generated the image originally written by Cies Breijs, and how we have modified it to add color. Check it out to learn about chaos, the
Complex type, and the
JuicyPixels graphics library.
Courses are series about a particular topic meant to be watched in order. Some are more theory-and-fundamentals oriented, while some focus on building a project. Each course has clearly identified prerequisites and goals, to help you choose which courses are right for you.
Profunctor, with motivating examples and discussions of what each is good for, the laws governing each, and how to property test instances.
fltkhsand Chris using
gtk3. Each lesson explains aspects of the library, illuminates important Haskell concepts such as concurrency primitives and implicit parameters, and gives you some basis for comparing libraries for your own native GUI application projects.
Validationtypes brings, as well as using
newtypeto differentiate inputs. We also demonstrate the difference between
Each article explains a single, sometimes small, Haskell topic in detail. Some articles include video. Haskell reference pages supplement, but are independent of, the courses and projects. Haskellers of any level will find them useful as reference.
transformerslibrary and use it to illustrate type aliases, newtypes, and various approaches for typeclass deriving, using the
TypeApplicationslets you visibly apply functions to type arguments. We demonstrate several common use cases.
ScopedTypeVariableslets you extend the scope of a type variable over a whole function, including its subexpressions.
reduce), monoids, and identity values.
scotty, a Haskell web framework.
This section covers topics that aren’t about the Haskell language itself, but about software that helps you be more productive with it.
:typecommand and never be at a loss for knowledge of types