Common Lisp の print
Common Lisp の print は表示したオブジェクトをそのまま返すらしい。id:g000001 さんに教えてもらった。
(and hoge hige)
の print デバッグは
(and (print hoge) hige)
と書ける。面白い。
ちなみに Scheme の display は未定義値を返す仕様。
追記
多値にも対応した print を Mosh の標準ライブラリに追加してみた。
(define-syntax p (lambda (x) (syntax-case x () [(_ obj) #'(call-with-values (lambda () obj) (lambda x (display x) (newline) (apply values x)))])))