Function CONSTANTLY
constantly
value => function
value - オブジェクト
function - 関数
constantly
は、引数を何個でも受け付ける関数を返却し、 その関数は副作用がなく常にvalueを返却するというものです。
mapcar (constantly 3) '(a b c d)) => (3 3 3 3)
(defmacro with-vars (vars &body forms)
(lambda ,vars ,@forms) ,@(mapcar (constantly nil) vars)))
`((=> WITH-VARS
macroexpand '(with-vars (a b) (setq a 3 b (* a a)) (list a b)))
(=> ((LAMBDA (A B) (SETQ A 3 B (* A A)) (LIST A B)) NIL NIL), true
なし。
なし。
constantly
は次のように定義できます。
defun constantly (object)
(lambda (&rest arguments) object)) #'(