有意な値を返さない


Tag: 制御構造

有意な値を返さないことを示すイディオムとしては、valuesを利用するものがあり、

(values)

のように書かれます。 これは、0個の多値を返すことを示します。

(defun hello ()
  (format t "こんにちは!!~%")
  (values))

(hello)
;-> こんにちは!!
;=> No values

参考

0個の返り値は、フォームの用いられる場所によっては値がnilとして扱われます。

(if (values) "はい" "いいえ")
;=> "いいえ"

(or (values) (values) (values))
;=> No values
(or (values) (values) (values 1))
;=> 1

議論