Skip to content

Instantly share code, notes, and snippets.

@y2q-actionman
Created July 12, 2018 05:54
Show Gist options
  • Save y2q-actionman/15ca43b0f251374c0c76609e94cd6fc1 to your computer and use it in GitHub Desktop.
Save y2q-actionman/15ca43b0f251374c0c76609e94cd6fc1 to your computer and use it in GitHub Desktop.
Common Lisp で :key パラメータをとる関数。 cons 系と sequence 系しかなさそう。
CL-USER> (loop for sym being the external-symbol in (find-package :cl)
when (fboundp sym)
do (let ((arglist (excl:arglist sym)))
(when (and (member '&key arglist)
(member 'key arglist
:test (lambda (x y)
(ignore-errors (string= x y)))))
(format t "~&~A -> ~A~%" sym arglist))))
NSUBST -> (NEW OLD TREE &KEY KEY TEST TEST-NOT)
MEMBER-IF -> (PREDICATE LIST &KEY KEY)
ASSOC-IF -> (PREDICATE ALIST &KEY KEY)
SUBSTITUTE -> (NEW OLD SEQUENCE &KEY FROM-END TEST TEST-NOT START END
COUNT KEY)
DELETE -> (ITEM SEQUENCE &KEY FROM-END END COUNT START KEY TEST
TEST-NOT IN-PLACE)
REMOVE -> (ITEM SEQUENCE &KEY KEY FROM-END TEST TEST-NOT START END
COUNT)
COUNT -> (ITEM SEQUENCE &KEY FROM-END TEST TEST-NOT START END KEY)
PUSHNEW -> (VALUE PLACE &REST KEYS &KEY KEY TEST TEST-NOT)
SUBST -> (NEW OLD TREE &KEY KEY TEST TEST-NOT)
SORT -> (SEQUENCE PREDICATE &KEY KEY)
MEMBER -> (ITEM LIST &KEY KEY TEST TEST-NOT)
ASSOC-IF-NOT -> (PREDICATE ALIST &KEY KEY)
POSITION -> (ITEM SEQUENCE &KEY FROM-END TEST TEST-NOT START END KEY)
NINTERSECTION -> (LIST1 LIST2 &KEY KEY TEST TEST-NOT)
DELETE-DUPLICATES -> (SEQUENCE &KEY TEST TEST-NOT START END FROM-END
KEY)
INTERSECTION -> (LIST1 LIST2 &KEY KEY TEST TEST-NOT)
NSUBLIS -> (ALIST TREE &KEY KEY TEST TEST-NOT)
RASSOC -> (ITEM ALIST &KEY TEST TEST-NOT KEY)
NSET-DIFFERENCE -> (LIST1 LIST2 &KEY KEY TEST TEST-NOT)
COUNT-IF -> (TEST SEQUENCE &KEY FROM-END START END KEY)
REMOVE-IF-NOT -> (PREDICATE SEQUENCE &KEY FROM-END START END COUNT KEY)
NSUBSTITUTE -> (NEW OLD SEQUENCE &KEY FROM-END TEST TEST-NOT END COUNT
KEY START)
SUBSETP -> (LIST1 LIST2 &KEY KEY TEST TEST-NOT)
FIND-IF -> (TEST SEQUENCE &KEY FROM-END START END KEY)
NSUBST-IF-NOT -> (NEW TEST TREE &KEY KEY)
RASSOC-IF-NOT -> (PREDICATE ALIST &KEY KEY)
DELETE-IF -> (PREDICATE SEQUENCE &KEY FROM-END START KEY END COUNT
IN-PLACE)
POSITION-IF-NOT -> (TEST SEQUENCE &KEY FROM-END START KEY END)
NUNION -> (LIST1 LIST2 &KEY KEY TEST TEST-NOT)
MEMBER-IF-NOT -> (PREDICATE LIST &KEY KEY)
STABLE-SORT -> (SEQUENCE PREDICATE &KEY KEY)
SET-DIFFERENCE -> (LIST1 LIST2 &KEY KEY TEST TEST-NOT)
SUBLIS -> (ALIST TREE &KEY KEY TEST TEST-NOT)
SEARCH -> (SEQUENCE1 SEQUENCE2 &KEY FROM-END TEST TEST-NOT START1 END1
START2 END2 KEY)
REMOVE-DUPLICATES -> (SEQUENCE &KEY TEST TEST-NOT START FROM-END END
KEY)
SUBSTITUTE-IF-NOT -> (NEW TEST SEQUENCE &KEY FROM-END START END COUNT
KEY)
MISMATCH -> (SEQUENCE1 SEQUENCE2 &KEY FROM-END TEST TEST-NOT START1
END1 START2 END2 KEY)
ADJOIN -> (ITEM LIST &KEY KEY TEST TEST-NOT)
SET-EXCLUSIVE-OR -> (LIST1 LIST2 &KEY KEY TEST TEST-NOT)
NSUBSTITUTE-IF-NOT -> (NEW TEST SEQUENCE &KEY FROM-END START END COUNT
KEY)
REMOVE-IF -> (PREDICATE SEQUENCE &KEY FROM-END START END COUNT KEY)
ASSOC -> (ITEM ALIST &KEY TEST TEST-NOT KEY)
MERGE -> (RESULT-TYPE SEQUENCE1 SEQUENCE2 PREDICATE &KEY KEY)
NSUBST-IF -> (NEW TEST TREE &KEY KEY)
POSITION-IF -> (TEST SEQUENCE &KEY FROM-END START KEY END)
FIND-IF-NOT -> (TEST SEQUENCE &KEY FROM-END START END KEY)
REDUCE -> (FUNCTION SEQUENCE &KEY FROM-END START END KEY INITIAL-VALUE)
FIND -> (ITEM SEQUENCE &KEY FROM-END TEST TEST-NOT START END KEY)
NSET-EXCLUSIVE-OR -> (LIST1 LIST2 &KEY KEY TEST TEST-NOT)
DELETE-IF-NOT -> (PREDICATE SEQUENCE &KEY FROM-END START END KEY COUNT
IN-PLACE)
RASSOC-IF -> (PREDICATE ALIST &KEY KEY)
SUBST-IF -> (NEW TEST TREE &KEY KEY)
UNION -> (LIST1 LIST2 &KEY KEY TEST TEST-NOT)
NSUBSTITUTE-IF -> (NEW TEST SEQUENCE &KEY FROM-END START END COUNT KEY)
SUBST-IF-NOT -> (NEW TEST TREE &KEY KEY)
COUNT-IF-NOT -> (TEST SEQUENCE &KEY FROM-END START END KEY)
SUBSTITUTE-IF -> (NEW TEST SEQUENCE &KEY FROM-END START END COUNT KEY)
NIL
CL-USER>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment