You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Ivy d77a4d2460 Minor fix 3 months ago
src Minor fix 3 months ago
LICENSE Changed LICENSE 3 months ago
README.md Actualizar 'README.md' 3 months ago
Setup.hs First commit 3 months ago
cherry-lisp.cabal Forget to commit the .cabal file 3 months ago
stack.yaml I Now uses haskeline to improve repl 3 months ago

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