In the few years since Ruby Koans first came out, the approach has been mimicked in a wide variety of programming languages. Work on Haskell Koans was started in January 2012 by Román González and Tatsuhiro Ujihisa.
The premise is simple: A koan is a small snippet of almost-correct code, given for “meditation”. Each koan is a kind of puzzle, and is a great way for users to learn more about a language.
Here’s a simple example:
import Test.HUnit
check p = do
assert p
putStrLn "OK"
--show
result = fixMe
main = check (2 + 2 == result)
Running this as-is gives a compile error, since
fixMe
is undefined. But changing the code by replacing
fixMe
with 4
gives a reassuring
OK
. You can edit the above code in place before
executing it. Go try it!
A lot of programmers are “hands-on” learners, and would rather just try out a new tool and explore some possibilities, rather than starting with a thorough review of documentation or associated research papers.
Building koans on School of Haskell is easy. Here’s the markdown behind the above example:
```active haskell
import Test.HUnit
check p = do
assert p
putStrLn "OK"
--show
result = fixMe
main = check (2 + 2 == result)
```
The code before --show
is hidden, and has two
parts:
import Test.HUnit
, a Haskell unit-testing
framework.check
, a thin wrapper around
HUnit’s assert
command.So in general, each koan can look like this:
```active haskell
import Test.HUnit
check p = do
assert p
putStrLn "OK"
--show
YOUR KOAN HERE
```
That’s really all there is to it. Koans are a great fit with our Active Haskell, and we’d especially love to see how this approach can be used to introduce users to new libraries.
Subscribe to our blog via email
Email subscriptions come from our Atom feed and are handled by Blogtrottr. You will only receive notifications of blog posts, and can unsubscribe any time.