トップ «前の日記(2013-04-11(Thu)) 最新 次の日記(2013-04-14(Sun))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2013-04-13(Sat) ちょっとちょっとはれはれ

同じのをすべて削除

手習いの例題に、アトムのリストから、指定されたアトムと 同じ最初のアトムを一つ消すものがあった。
全部消すように書いてみた。

(define r-rember
  (lambda (atom list)
    (cond
     ((null? list) '())
     ((eq? atom (car list))
      (r-rember atom (cdr list)))
     (#t
      (cons (car list)
            (r-rember atom (cdr list)))))))

最初のhackはぜんぜんダメだったが、バスの中で 思いついた、eq? が真のときに再帰を追記する案が 思ったよりあっさり動いてしまった。

(rember 'a '(b c d a a f))
(b c d a f)
 
(r-rember 'a '(b c d a a f))
(b c d f)

別々の行に同じ処理、というのも変な気はするが。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。