1040: 简单Lisp解释器
内存限制:512 MB
时间限制:5.000 S
评测方式:文本比较
命题人:
提交:319
解决:5
题目描述
实现一个lisp解释器,不需要支持字符串类型。
要求实现下面的语句:
if
quote
define
set
lambda
+,-,*,/,>,<,=(判断相等),>=,<=
abs
append
apply
begin
car
cdr
cons
eq?(python的is)
equal?
length
list
map
max
min
not
并且支持变量的存取和调用
输入
第1行:n,表示接下来有n条语句,每条一行
第2~n+1行:无错误的lisp表达式expr, 共n条
输出
表达式求值结果,如果无返回值则输出None。每行表达式的结果占一行
样例输入 复制
2
(quote nothing)
(lambda (x) (+ x 1))
样例输出 复制
nothing
None
提示
列表的表示方法:
(a b c d e f ...)
其中a b c d e f为列表中元素,以空格分隔