All Projects → mattn → Golisp

mattn / Golisp

Licence: mit
Lisp Interpreter

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects
lisp
113 projects

Projects that are alternatives of or similar to Golisp

lispkit
FUNCTIONAL PROGRAMMING: Application and Implementation, Peter Henderson, ISBN 0-13-331579-7
Stars: ✭ 33 (-69.16%)
Mutual labels:  lisp-interpreter
Pampy
Pampy: The Pattern Matching for Python you always dreamed of.
Stars: ✭ 3,419 (+3095.33%)
Mutual labels:  lisp-interpreter
Yascm
Yet Another Scheme Interpreter using flex and bison
Stars: ✭ 36 (-66.36%)
Mutual labels:  lisp-interpreter
abap scheme
ABAP Scheme
Stars: ✭ 13 (-87.85%)
Mutual labels:  lisp-interpreter
parens
Parens is a highly flexible and embeddable LISP toolkit. 💻
Stars: ✭ 32 (-70.09%)
Mutual labels:  lisp-interpreter
Glisp
A Lisp-based Design Tool Bridging Graphic Design and Computational Arts
Stars: ✭ 519 (+385.05%)
Mutual labels:  lisp-interpreter
Esp Lisp
Beta: A small fast lisp interpeter for a ESP8266 as alternative to lua on the nodemcu.
Stars: ✭ 236 (+120.56%)
Mutual labels:  lisp-interpreter
Mal Zh
The Make-A-Lisp Process 中文翻译,如何写一个Lisp解释器
Stars: ✭ 100 (-6.54%)
Mutual labels:  lisp-interpreter
liyad
Liyad (Lisp yet another DSL interpreter) is very small Lisp interpreter written in JavaScript.
Stars: ✭ 27 (-74.77%)
Mutual labels:  lisp-interpreter
Mal
mal - Make a Lisp
Stars: ✭ 8,287 (+7644.86%)
Mutual labels:  lisp-interpreter
genyris
Genyris presents a new programming paradigm. Objects can belong to multiple classes independent from construction allowing data to be classified into types after creation.
Stars: ✭ 14 (-86.92%)
Mutual labels:  lisp-interpreter
jisp
Small Lisp expression interpreter made in Java
Stars: ✭ 19 (-82.24%)
Mutual labels:  lisp-interpreter
Pampy.js
Pampy.js: Pattern Matching for JavaScript
Stars: ✭ 544 (+408.41%)
Mutual labels:  lisp-interpreter
CoCoC
C development system for (Nitr)OS9/6x09, with source
Stars: ✭ 22 (-79.44%)
Mutual labels:  lisp-interpreter
Seax
A VM-based runtime environment for functional programming languages
Stars: ✭ 36 (-66.36%)
Mutual labels:  lisp-interpreter
G Fu
Lisp 2 Go
Stars: ✭ 243 (+127.1%)
Mutual labels:  lisp-interpreter
Arpilisp
A Lisp interpreter for Raspberry Pi implemented in a single ARM assembly file
Stars: ✭ 470 (+339.25%)
Mutual labels:  lisp-interpreter
Mumbler
My experimental programming language using Truffle
Stars: ✭ 100 (-6.54%)
Mutual labels:  lisp-interpreter
Tox
misc parsers in rust
Stars: ✭ 40 (-62.62%)
Mutual labels:  lisp-interpreter
Blispr
Lisp-in-progress
Stars: ✭ 27 (-74.77%)
Mutual labels:  lisp-interpreter

golisp

CI

Lisp Interpreter

Usage

$ golisp < foo.lisp

Installation

$ go get github.com/mattn/golisp/cmd/golisp

Features

Call Go functions.

Print random ints.

(setq time (go:import 'time))
(setq rand (go:import 'math/rand))
(.Seed rand (.UnixNano (.Now time)))
(print (.Int rand))

Use goroutine/channel

(setq time (go:import time))
(let ((ch (go:make-chan string 1)))
  (go
    (.Sleep time 1e9)
    (go:chan-send ch "3")
    (.Sleep time 1e9)
    (go:chan-send ch "2")
    (.Sleep time 1e9)
    (go:chan-send ch "1")
    (.Sleep time 1e9)
    (go:chan-send ch "Fire!")
  )
  (print (car (go:chan-recv ch)))
  (print (car (go:chan-recv ch)))
  (print (car (go:chan-recv ch)))
  (print (car (go:chan-recv ch)))
)

TODO

  • macro

License

MIT

Author

Yasuhiro Matsumoto (a.k.a. mattn)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].