multisubst

3章の最後は、multisubst だ。(multisubst new old lat) は lat の中のすべての old を new に置き換える。

(define multisubst
  (lambda (new old lat)
    (cond
      ((null? lat) (quote ()))
      ((eq? (car lat) old) (cons new (multisubst new old (cdr lat))))
      (else (cons (car lat) (multisubst new old (cdr lat)))))))

実行例:

gosh> (multisubst 'A 'a '(a b c a b c))
(A b c A b c)

うまくいった。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください