Go to file
Ivy d77a4d2460 Minor fix 2021-02-04 14:21:45 +01:00
src Minor fix 2021-02-04 14:21:45 +01:00
LICENSE Changed LICENSE 2021-01-28 01:25:32 +00:00
README.md Actualizar 'README.md' 2021-01-30 22:16:48 +00:00
Setup.hs First commit 2021-01-28 02:16:30 +01:00
cherry-lisp.cabal Forget to commit the .cabal file 2021-02-04 00:53:58 +01:00
stack.yaml I Now uses haskeline to improve repl 2021-01-29 00:19:19 +01:00

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 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...