如何在Scheme/LISP中编写all-but-one函数?

unj*_*nj2 1 lisp scheme functional-programming

你们能想到全功能的最短和最惯用的解决方案吗?

;; all-but-one
;; checks if all but one element in a list holds a certain property
;; (all-but-one even? (list 1 2 4)) -> true
;; (all-but-one even? '(1)) -> true
;; (all-but-one even? '(2 4)) -> false
Run Code Online (Sandbox Code Playgroud)

编辑:完全是一个.

Ano*_*on. 5

如果第一个元素具有指定的属性,则调用all-but-one列表的其余部分.

如果第一个元素没有指定的属性,则调用all列表的其余部分.