LISc Scala中的列表解释概述
这是一个用纯Scala编写的玩具LISP解释器。当前项目还处于早期阶段,缺少一些语言功能,但代码已实现基本的运行功能,包含非常基础的REPL。
用法:
启动SBT并运行,将进入一个简单的REPL环境:
$ sbt run
...
Welcome to LISc!
This is a toy Lisp interpreter, written in Scala.
Type :q to leave
lisc> (defn fact [x] (if (<= x 1) 1 (* x (fact (- x 1)))))
==> ()
lisc> (fact 5)
==> 120
退出:
输入:q
退出REPL。
当前支持的特殊表格:
目前支持四种特殊语法结构,命名灵感来源于Clojure:
-
(if test then else)
- 条件表达式 -
(def name expression)
- 定义 -
(defn name [args] expression)
- 函数定义 -
(quote expression)
- 引用表达式
上述结构帮助实现了基础的函数和条件语句功能。
暂无评论