APL: Evaluator for a Subset of Scheme
4 days ago
- #Metacircular Evaluator
- #Scheme Evaluation
- #APL
- 这是一个名为'lisp'的APL函数,用于计算Scheme表达式的一个子集。当左参数'eval'为0时,它可以选择性地返回解析树(AST)。
- 它支持特殊形式如lambda(别名为'\\')、quote、cond和else,以及基本函数如+、-、*=、write和display。
- 该实现用APL表示Lisp结构:原子为数字,符号为字符向量,列表为向量,闭包为包含'closure'、环境、参数和主体的4向量。
- 示例展示了表达式求值、lambda应用、引用表达式以及一个微型REPL会话。它包括了高级示例,如用于递归函数(阶乘、斐波那契、阿克曼函数)的Y组合子。
- 提供了一个辅助函数'pchk'来检查括号深度。该函数受SICP中元循环求值器的启发,是工具集合的一部分。