kiyoka.2007_10_07 RSSPLAIN

Related pages: !kiyoka.blog.list !kiyoka.blog.2007_10
55555555555555555555554343333
5

[OldType開発][プログラミング]必要からlistのuniqを作る

5

Gaucheにはuniqはないんだね。

5
で、ごく普通の教科書的コードを書いた。
5
(define (uniq lst)
5
  (cond
5
   ((null? lst)
5
    '())
5
   ((memq (car lst) (cdr lst))
5
    (uniq (cdr lst)))
5
   (else
5
    (cons (car lst)
5
          (uniq (cdr lst))))))
5
使いかた
5
gosh> (uniq (sort '(3 3 6 6 4 2 4 2 6 2 1)))
5
結果
5
(1 2 3 4 6)
5

もうちょっと短く書けそうなんだけど。

5

 

5
実はmemqを使っているのでソートする必要はない。
5
gosh> (uniq '(3 3 6 6 4 2 4 2 6 2 1))
5
結果
5
(3 4 6 2 1)
4

 

3
追記: どう書く?orgで出題されていたんだね。
4

アレイのuniq どう書く?orgEXT

3

 

3
追記: Shiroさんが古いkiyoka日記(tDiary)EXTにコメントに書いてくださいました。
3

以下、Shiroさんのコメント引用。

3
 ちなみにuniqに相当するものとしてsrfi-1にdelete-duplicatesというのがあります。