npt-japanese

% Function CONSTANTLY

UP


Function CONSTANTLY

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

影響

なし。

例外

なし。

参考

identity

備考

constantlyは次のように定義できます。

(defun constantly (object)
  #'(lambda (&rest arguments) object))

TOP, Github