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:
- First we
import Test.HUnit
, a Haskell unit-testing
framework.
- Next we define
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.
Do you like this blog post and need help with Next Generation Software Engineering, Platform Engineering or Blockchain & Smart Contracts? Contact us.