DocTest
From HaskellWiki
(Difference between revisions)
| Line 4: | Line 4: | ||
[http://docs.python.org/library/doctest.html doctest for Python]. | [http://docs.python.org/library/doctest.html doctest for Python]. | ||
| - | == | + | ==Tutorial== |
| - | Bellow is a small Haskell module | + | Bellow is a small Haskell module. The module contains source code comments. |
| + | Those comments are examples from an interactive Haskell session and demonstrate how the module is used. | ||
<haskell> | <haskell> | ||
| Line 23: | Line 24: | ||
</haskell> | </haskell> | ||
| - | DocTest checks if the implementation | + | With DocTest you may checks if the implementation satisfies the given examples, by typing (on your Unix shell): |
| - | satisfies the given examples: | + | |
<pre> | <pre> | ||
| Line 33: | Line 33: | ||
Lines starting with <hask>-- ></hask> denote ''expressions''. | Lines starting with <hask>-- ></hask> denote ''expressions''. | ||
All comment lines following an expression denote the | All comment lines following an expression denote the | ||
| - | ''result'' of that expression | + | ''result'' of that expression. Result is defined by what a [http://en.wikipedia.org/wiki/Read-eval-print_loop REPL] |
| - | REPL prints to | + | (e.g. ghci) prints to <hask>stdout</hask> and <hask>stderror</hask> when |
| + | evaluating that expression. | ||
==DocTest on Hackage== | ==DocTest on Hackage== | ||
Revision as of 12:00, 22 March 2009
Contents |
1 What is DocTest
DocTest is a small program, that checks examples in Haskell comments. It is modeled after doctest for Python.
2 Tutorial
Bellow is a small Haskell module. The module contains source code comments. Those comments are examples from an interactive Haskell session and demonstrate how the module is used.
module Fib where -- Examples: -- -- > fib 10 -- 55 -- > fib 5 -- 5 fib 0 = 0 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2)
With DocTest you may checks if the implementation satisfies the given examples, by typing (on your Unix shell):
$ doctest Fib.hs
-- >
All comment lines following an expression denote the result of that expression. Result is defined by what a REPL
(e.g. ghci) prints tostdout
stderror
evaluating that expression.
3 DocTest on Hackage
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/DocTest
