読書会メモ
今日は 1h 縛りでした。申し訳ない。最初らへんは図形言語を使って画像を出力するには、な検討でしたが openGL ではなく単に画像ファイルとして出力すれば良いのでは? というラディカルな答えを出してきた相方の指導が入った件。
以下に TODO というかメモを列挙。
- 図形描画は一旦パス
- シンボルについて
- 別途調べます
- () と '() の違い
- 別途調べます
- eq? と eqv? と equal? について
- 別途 R5RS なソレを (ry
- 問題 2.54 について、昔の解答確認してみたらダメダメだった件orz
問題 2.54
問題の文章をそのまま手続きにしてみるか。
(define (equal? a b) (cond ((and (pair? a) (pair? b)) (if (equal? (car a) (car b)) (equal? (cdr a) (cdr b)) #f)) ((and (symbol? a) (symbol? b)) (eq? a b)) (else #f)))
これでもまだ sw@mac の中の人の実装よりはダサい。てか上記の手続きは試験してないので正常動作の担保はゼロです。
てか
((and (symbol? a) (symbol? b)) (eq? a b))
は無いな。やはり結局こうなるのか。
(define (equal? a b) (if (and (pair? a) (pair? b)) (if (equal? (car a) (car b)) (equal? (cdr a) (cdr b)) #f) (eq? a b)))
最初は違和感あるって言っちゃいましたが、この方が断然良い。でももう少しなんとかならんかな、な感触もあったりしますが多分無理。あ、こうしたらもう少し短くなる?
(define (equal? a b) (if (and (pair? a) (pair? b)) (and (equal? (car a) (car b)) (equal? (cdr a) (cdr b))) (eq? a b)))
わははは的 (何