【发布时间】:2015-06-10 10:31:06
【问题描述】:
有什么东西可以与 list-ref 相反,它不是选择某些值来添加到列表中,而是从列表中取出值?
我基本上想做以下事情
(list 1 2 3 4 5 6 7) (list 3 6 7) -> (list 1 2 4 5)
列表二中的值从列表一中删除。 (首选)
因为我总是从一个从 1 到 n 的列表开始, 第二个列表也可以代表应该删除列表 1 上的数字的位置/位置。 (不太喜欢)
我正在尝试创建一个代码来操纵其他函数来生成这些列表,因此请清楚代码中“提到”每个列表的位置,因为如果人们使用 xy 和 z 和以此类推,有多个 lambda、本地定义等。
我在这里有一些与我想要的相反的东西,我一直在尝试改变它,而不是输出 x 上在 y 上的元素,它给出了不在 y 上的 x 元素。
(define (selection x y)
(filter (lambda (e2)
(ormap (lambda (e1) (equal? e1 e2))
y))
x))
示例:
(list 1 2 3 4 5 6 7 8 9 10)
(list 2 4 6 8 10))
-> (list 2 4 6 8 10))
有人对如何将输出更改为我需要的内容有任何想法吗?
【问题讨论】:
-
什么?
list-ref与“选择某些值添加到列表”没有太大关系。 -
我的描述没有多大意义,我只是想说我想在某种意义上做相反的事情。
标签: list racket abstract higher-order-functions