- Lisp Scheme Part38
694 :デフォルトの名無しさん[sage]:2014/06/01(日) 07:26:00.52 ID:YcJ1a4/i - >>692
>>690 tとnilとくればSchemeではないので (defun is-atom? (x) (not (listp? x))) だとうまくいかない。nilは空リストを意味してしまうからである。つまり 「リストではないものはアトム」とはいえない どうしてもいいたいならば 「空でないリストはアトムではない」とはいえる そうではなくて 「(コンス)セルではないものはアトム」である (defun is-atom? (x) (not (consp x))) 逆にSchemeでそれがアトムかどうかを判定させるには (define is-atom? (lambda (x) (not (pair? x))) ではうまくいかない。空リストが考慮されてないからである それゆえ (define is-atom? (lambda (x) (and (not (pair? x)) (not (null? x))))) Common Lisp系の場合はnilの特異性(nilはアトムでもあり リストでもある唯一のシンボル)のためアトムとリストの対応ではなくアトムとコンスセルの対応を基本に据えないと見通しが悪くなる
|
- Lisp Scheme Part38
695 :デフォルトの名無しさん[sage]:2014/06/01(日) 07:28:47.86 ID:YcJ1a4/i - × listp?
○ listp
|
- Lisp Scheme Part38
696 :デフォルトの名無しさん[sage]:2014/06/01(日) 07:31:28.62 ID:YcJ1a4/i - >>693
それは t,nilの2つにくわえ (nyotai naoko ikuko ayako beautiful sexy erotic ) があればいいんじゃないか?
|