Skip to content

Lisp dialect with support for lexical closures, arbitrarily precise math, and a module system.

Notifications You must be signed in to change notification settings

FrankDattalo/Flisp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flisp

Flisp is a small lisp dialect. It is currently written in Java. Flisp supports lexical closures, arbitrarily precise arithmetic, and a module system.

Flisp Tutorial:

Hello World

(print "Hello World")

Flisp Data Types

Flisp contains two primary data types: the atom and the list. Lists can contain any Flisp data type. Atoms can be: strings, numbers, or symbols. Numbers are arbitrarily precise.

( ... list contents ... )

"Hello World"

mySymbol

1 2 3 -1 1.00000000000000000000000000000000000000065 4573523523523532123123124124991

(def greet (fn (name)
  (print (concat "Hello " name))))
  
(greet "Frank") Prints "Hello Frank!"

TODO

  • Implementation of Sets, Vectors, and Maps.
  • Implementation of a macro system.

Issues

  • There is an issue with relative file locations during imports and exports.

Build

$ git clone <this repo>
$ mvn clean package
$ ./flisp <file path (or empty for repl)>

About

Lisp dialect with support for lexical closures, arbitrarily precise math, and a module system.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages