consp

とあるコードを見ていて,「リストの終わりじゃなきゃXXをする」と書くべきところに
(if (consp lst) ~ ~)
と書かれていた。


一瞬なんで?と思ったけど,nilを渡すとnilが返るからですね。
なるほどー。 普通は
(if (not (endp lst)) ~ ~)
とかって書くもんな。
可読性は下がるかもしれないけど,こういう使い方もあるのですね。


ちなみにlistpはnilを渡してもtが返るので予期せぬぱっぱらぱーな動作に!