CS61A-Lec27 Interpreters 学习笔记

Scheme的解释器很大程度上基于计算器 ,并且shceme程序本身就是一个数据结构(list),data is program,program is data

1)scheme_reader

2) scheme_eval 计算剩余部分,它有一个副作用,会去掉第一个表达式,否则返回EOF

3) scheme_apply将函数作用于参数

func(*args) 即 把列表转换为参数

对于函数来说,有两种情况,一种是primitive,built-in function,另一种是user-defined function,也就是用户通过define 或者 lambda自定义的函数。

对于用户自定义函数,将其作为表达式进行处理,也就是调用scheme_apply,apply再调用eval

scheme中的表达式比如3他就是自举的,即3

shceme提供解释器的函数,apply和eval

对于有符号的表达式,就是计算expression和环境(scope)。

对于lambda和函数,需要了解它的参数,函数体和父环境

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务