問題3.18 – SICP(計算機プログラムの構造と解釈)その118
2009年03月04日
問題3.18
1度たどった対を再度たどった場合に循環しているといえる。
1度たどった対をリスト walks
に追加していって保持し、次にたどる対が walks
に含まれているかどうかをチェックする。
(define (circulate? items) (define walks '()) (define (has-circulate? x) (if (memq x walks) #t (begin (set! walks (cons x walks)) #f))) (define (circulate?-iter i) (if (not (pair? i)) #f (if (has-circulate? (car i)) #t (circulate?-iter (cdr i))))) (circulate?-iter items)) (define z (make-cycle (list 'a 'b 'c))) (circulate? (list 'a 'b 'c)) gosh> #f (circulate? z) gosh> #t
問題3.19
パス
問題3.20
パス
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542