mirror of
https://github.com/ilyakooo0/Idris-dev.git
synced 2024-11-15 01:25:05 +03:00
af72159e60
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
18 lines
488 B
Idris
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)
|