3ac3f8f11a | ||
---|---|---|
src | ||
LICENSE | ||
README.md | ||
Setup.hs | ||
cherry-lisp.cabal | ||
stack.yaml |
README.md
Cherry Lisp
/\
| \ A tiny, curried and lazy Lisp.
@ @
Curried? Lazy?
Currying consists in convert one function that takes multiple arguments into multiple functions that each take a single argument.
WIP
Lazyness is when an expression is only evaluated when is necessary.
Features
- Interpreted
- Dynamic typed
- Functional (impure)
- Curried
- Lazy evaluation
- It's a Lisp
Inspiration
This language is being created for fun.
It takes inspiration of some features of Haskell (like currification and lazy evaluation) and the syntax of Lisp.
A small taste
cherry> (set! x 10)
nil
cherry> x
10
cherry> (const 3 6)
3
cherry> (set! always-seven (const 7))
nil
cherry> always-seven
#[lambda y x]
cherry> (always-seven 1)
7
cherry> (always-seven 8)
7
Download and build instructions
Install the stack build tool. On Debian based systems, run (as root):
# apt install haskell-stack
Clone the repo:
$ git clone https://git.fai.su/Suguivy/cherry-lisp
Compile it:
$ cd cherry-lisp
$ stack upgrade
$ stack build
Install and execute it:
$ stack install
$ cherry
Work in progress...