【发布时间】:2013-03-13 10:23:35
【问题描述】:
我正在尝试在方案中生成符号表,但我被困在 set-symbol 函数上。 数字对应于代码的块级别或“范围”。
First symbol it reads in
((c class 0))
Next symbols
(((c class 0) (a int 0) (b float 0)))
We read a bracket and read the next variables to a new scope.
(((a char 1) (d int 1)) ((c class 0) (a int 0) (b float 0)))
We leave that scope and "pop the stack".
(((c class 0) (a int 0) (b float 0)))
如何始终添加到范围内第一个列表的最深列表?
【问题讨论】:
-
我认为这些应该是普通列表。您是否有理由将新绑定添加到列表的末尾而不是开头?这需要追加(或额外的递归)。
-
正在添加新绑定以保持深度。这样,可以通过获取外部列表的长度轻松计算深度。
标签: list recursion functional-programming lisp scheme