Python实现Scheme

https://github.com/zhangyun00...

ZhScheme新功能需求,欢迎同学阅读并提交代码 :)

一、set一次定义多个变量

要求,能一次定义多个变量:

(set (a b) (12 34))  

等价于

(set a 12)  
(set b 34)  

需要修改eval函数中251行;

        elif x[0] == 'set':   
        
下的代码。

二、函数返回值

Lisp、Scheme中的函数似乎不能直接return。

我们可以通过为所执行函数外层的变量赋值来当作返回值。

(set sum 0 )
(define (fun x y) (set sum (+ x y) ) )
(print sum)

以上sum变量起到返回值的作用 --- 在函数体内,你可以使用任意上层/外层定义的变量。

 

阅读 1.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题