各文字が文字列に現れる時間をカウントしようとしていますが、私はスイッチとforループを使用していますが、正しくインクリメントされていません。ここに私のコードOCAMLはスイッチを使用してチャーの頻度を数えます
let countChar x =
match x with
'A'-> countA := !countA +1;
|'C'-> countC := !countC +1;
|'T'-> countT := !countT +1;
|'G'-> countG := !countG +1;
;;
let demoStri = "ACGTACGT" in
for j = 0 to 7 do
countChar demoStri.[j];
let tempA = !countA in
print_int tempA;
print_string "\n";
let tempC = !countC in
print_int tempC;
print_string "\n";
let tempG = !countG in
print_int tempG;
print_string "\n";
let tempT = !countT in
print_int tempT;
print_string "\n";
done
しかし、いくつかの理由でそれが唯一の1をインクリメントだし、それは1 0 0 0、2 0 0 0、3 0 0 0を返し、そうで.....私が何かあれば思っていましたその過程で間違っていた?
なぜ「j」を使用していませんか? – hugomg
なぜList.iter ??? – karakfa
これはタイプミスで、私は自分のコードでj以外のものを使っていましたが、このコードのために変更しました。 –