重複する要素を取り除く
Posted feedbacks - OCaml
コスト高そうですが。。
1 2 3 | open List;;
let only_unique l = [for x in l when find_all ((=) x) l |> length = 1 -> x];;
|
1 2 3 4 5 6 7 8 | (*リスト内のxの数はn未満か*)
let rec count_lt lst n x =
if n=0 then false else
match lst with
| [] -> true
| hd::tl -> count_lt tl (if hd=x then (n-1) else n) x;;
let list_only lst = List.filter (count_lt lst 2) lst;;
|


にしお
#3412()
Rating1/1=1.00
これはアレイのuniqの派生問題です。 リストとかアレイという言葉は言語によってまちまちの意味で使われているので、 「配列のようなもの」という漠然とした意味にとって構いません。
[ reply ]