Idris-dev/samples/Select.idr
Jan de Muijnck-Hughes af72159e60 Sphinx Based Documentation for Idris.
Sphinx provides a retargatable documentation system for documentation, and code. Allowing for HTML, LaTeX, and ePub documents to be generated from a single source.
ReadTheDocs is a free service for Open Source Projects that provides continuous delivery of documents that use either Sphinx or MakeDoc.

This commit provides Sphinx based versions of:

+ The Idris Tutorial
+ The Effects Tutorial
+ Select articles from the Wiki to begin a language reference
+ Select articles from the Wiki to begin short guides.

The examples from the effect tutorial have been integrated as well.

In the `docs` folder see `README.md` for dependencies, Sphinx is easily obtainable from all major Linux ditributions and through brew on Mac OS X.

+ Running `make html` will produce a monolithic html website for use with readthedocs.
+ Running `make latexpdf` will produce individual PDFs for each of the above tutorials.
+ Running `make epub` will produce a monolithic epub. This will need to be adapted to either produce one of the above document sets, or individual epubs.

Future work will be to:

+ Integrate idris with readthedocs for documentation generation for tagged released..
+ Add latex and html generation to the travis builds.
+ Add
2015-03-17 16:19:11 +00:00

18 lines
488 B
Idris

module Main
import Effects
import Effect.Select
import Effect.Exception
triple : Int -> { [SELECT, EXCEPTION String] } Eff (Int, Int, Int)
triple max = do z <- select [1..max]
y <- select [1..z]
x <- select [1..y]
if (x * x + y * y == z * z)
then pure (x, y, z)
else raise "No triple"
main : IO ()
main = do print $ the (Maybe _) $ run (triple 100)
print $ the (List _) $ run (triple 100)