2008-02-17から1日間の記事一覧

問題2-17〜18

リストを操作する練習です。nilの扱いやリスト結合のやり方には、まだまだ慣れていません。 問題2-17は、リストの最後の要素を取り出すための手続きです。cdrを連発して、cdrがnilだったらそれが最後の要素なので、その構成物のcarを返します。 (define (las…

問題2-20

2〜3日前に取り組んだ時は、頭がこんがらがってしまって途中で断念してしまいましたが、id:higeponさんのエントリーを参考にしながら、落ち着いて再考してみました。 大前提として、偶数・奇数を判別する基本手続きがあります。 (even? 10) (odd? 10) =>#t =…

問題2-21〜22

mapを使い、一段抽象の壁を作ってみるための問題です。 まずは、問題2-21の穴埋め問題です。 (define (map proc items) (if (null? items) '() (cons (proc (car items)) (map proc (cdr items))))) (define (square x) (* x x)) (define (square-list1 item…

問題2-23

mapに似ているfor-each手続きです。今日は気力が尽きてきたので、上手くいかなかったパターンと、上手くいっているっぽいパターンをアップするだけにします。 (define (for-each proc items) (if (null? items) '() ((proc (car items)) (for-each proc (cdr…