Comment detail

アレイのuniq (Nested Flatten)
再帰で
1
2
uniq []     = []
uniq (x:xs) = x:uniq (filter (/=x) xs)
同じ事をscheme(gauche)で。
わかりやすい流れですねこれ。
pa$はcurry化です。
1
2
3
4
5
6
7
(use srfi-1)

(define (uniq a)
  (if (null? a) a
    (cons (car a) (uniq (remove (pa$ = (car a)) (cdr a))))))

(print (uniq '(3 1 4 1 5 9 2 6 5 3 5 8 9 7 9)))
#496は無かったことにしたいんですけど。orz
 $ pl -sq uniq.pl
[3, 1, 4, 5, 9, 2, 6, 8, 7]
 $
1
2
3
4
5
% uniq.pl
uniq([],[]).
uniq([A|As],[A|Bs]):-uniq(As,Bss), delete(Bss,A,Bs).

:-uniq([3,1,4,1,5,9,2,6,5,3,5,8,9,7,9],W), writeln(W).

Index

Feed

Other

Link

Pathtraq

loading...