假设我想返回一个包含[1 2 3 4]的子集的集合。是否包含1取决于w?,是否包含2取决于x?,y?上的3,z?上的4。在一些候选元素中构成一个包含元素的小列表,其中每个元素的包含依赖于一个独立的谓词?
如果我这样做
[(if (w?) 1) (if (x?) 2) (if (y?) 3) (if (z?) 4)]
和(x?),并评估是否真(Y?),其他假的,我想最终
[nil 2 3 nil]
但我想
[2 3]
有没有规范的方法来完成这个?这让人想起列表理解,但不完全相同。
感谢
编辑:
我认为我可以创建一个映射{1 W' 2 x? 3年? z 4?},然后是reduce
,通过是否考虑每个键取决于它的值函数是否为真,但也许有更好的方法。
或者你可以只筛选出尼尔斯你生成列表后 – soulcheck 2014-11-05 01:25:48
'(除去零[零2 3零] )'? – ntalbs 2014-11-05 01:28:09
我想到了这一点,但如果零是有意识的候选元素之一呢?似乎不太可能,但可能。 – user3391564 2014-11-05 01:33:05