【发布时间】:2015-03-08 06:34:06
【问题描述】:
我有一个可能包含一些空值的列表。但是,我打算忽略那些空值。我的列表示例是:(() () MC+ () MD- () () ME+)
在我的过程中,我遍历这些元素并使用 let 创建一个本地绑定变量,该变量绑定到此列表中的一个元素。但是,只有当值不为空时,我才应该能够绑定变量。目前,我正在这样做:
(let* ([disjunct (car disjunct-list)])
但是,只有当该元素不为空时,才应为 disjunct 分配一个值。这意味着分配给 disjunct 的值应该是:MC+
它应该遍历所有值并选择下一个非空值并将其分配给disjunct。
还有一件事,我正在对disjunct 进行进一步的操作。并且递归地,我将列表的其余部分向下传递。所以下次我递归调用这个过程时,disjunct 的值应该是MD-。那就是使用(cdr disjunct-list)我应该能够得到以下列表:(() MD- () () ME+)
如何做到这一点?
【问题讨论】: