aboutsummaryrefslogtreecommitdiff

iClean

Interactive Clean

This module allows you to evaluate Clean expressions interactively, similar to GHCi or the Python shell.

Copyright © 2015–present Camil Staps. This project is licensed under the MIT license. For more details, see the LICENSE file.

Example session

$ ./iclean
λ. [1,2,3,4]
[Int] :: [1,2,3,4]
λ. map toString [1..10]
[{#Char}] :: ["1","2","3","4","5","6","7","8","9","10"]
λ. [Ctrl-D]
$

Usage

Use docker pull camilstaps/iclean to pull the latest iClean version.

Run iClean with docker run --rm -it camilstaps/iclean.

If you want to import local files as well you can bindmount your local directory by adding -v "$PWD":/opt/clean/lib/Local.

If you want history, add -v ~/.iclean_history:/home/.iclean_history and touch ~/.iclean_history on the host.

You can add imports by creating a template in ~/.iclean_template, then adding it to the container with -v ~/.iclean_template:/home/.iclean_template.

If you care about hard disk wear, add --tmpfs /tmp:exec,size=1024k to have iClean build on a ramdisk.

Make all this a handy bash function:

iclean(){
    docker run --rm -it --tmpfs /tmp:exec,size=1024k -v "$PWD":/opt/clean/lib/Local -v ~/.iclean_history:/home/.iclean_history -v ~/.iclean_template:/home/.iclean_template camilstaps/iclean
}

Without Docker

Use make iclean to build.

Use either ./iclean or make run. You can of course add the executable iclean to your path.