リストの例["dog"; "cat"; "dog"; "cat"; "dog"]単語の結果がこのリスト 結果 - > [( "犬"、3);( "猫"、2)]しかし、私は奇妙な結果を取得します:[( "犬"、1); (「cat」、1); ( "dog"、2); (「cat」、2); (「犬」、3)]Ocaml - リスト内の単語数を確認する
私のコードはこれです:単語が他のリストは私が偽与え内にない場合
let rec nuovaParola par l =
match l with
[] -> true
|(a,_)::z ->if (par=a) then false
else nuovaParola par (List.tl l);;
let rec contaParole par l =
let rec contatore par l cont =
match l with
[] -> (par, cont)
|x::y -> if(par=x) then contatore par y (cont+1)
else contatore par y cont
in contatore par l 0;;
let rec occorrenze l =
let rec aux l l1=
match l with
[] -> l1
|x::y -> if (nuovaParola x l1) then aux y [email protected][(contaParole x l)]
else aux y l1
in aux l [];;`
nuovaParolaは私に真を与えます。
contaParolaはタプルを( "word"、number)で返します。
Occorrenzeが主な機能です。私は問題を見つけません! 助けてくれてありがとう!
[ヒストグラムOCamlを作成する]の可能な複製(http://stackoverflow.com/questions/40442527/create-a-histogram-ocaml) – coredump