Skip to content

Instantly share code, notes, and snippets.

@zhouqiang-cl
Created December 7, 2016 09:59
Show Gist options
  • Save zhouqiang-cl/ba87fc7e9fa076befdc5ab9607f69566 to your computer and use it in GitHub Desktop.
Save zhouqiang-cl/ba87fc7e9fa076befdc5ab9607f69566 to your computer and use it in GitHub Desktop.
common lisp 的函数 EVERY, SOME, NOTEVERY, NOTANY
语法
every predicate &rest sequences+ => generalized-boolean
some predicate &rest sequences+ => result
notevery predicate &rest sequences+ => generalized-boolean
notany predicate &rest sequences+ => generalized-boolean
参数和值
predicate --- 一个函数指示符, 这个函数要接受的参数个数和 sequences 数目一样多
sequence --- 一个 sequence
result --- 一个 object
generalized-boolean --- 一个 generalized-boolean
描述
every, some, notevery, notany 测试 sequences 中的元素是否满足 predicate 条件.
every 当 predicate 测试失败时返回 false, 当所有的元素测试都成功时, 返回 true
some 有 predicate 测试成功时返回 true, 所有元素都测试失败时, 返回 false
notevery 当 predicate 测试失败时返回 true, 当所有的元素都测试成功时, 返回false
notany 当有 predicate 测试成功时返回 false, 所有元素都测试失败时, 返回true
代码
* (every #'characterp "abc")
T
* (some #'= '(1 2 3 4 5) '(5 4 3 2 1))
T
* (notevery #'< '(1 2 3 4) '(5 6 7 8) '(9 10 11 12))
NIL
* (notany #'> '(1 2 3 4) '(5 6 7 8) '(9 10 11 12))
T
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment