F# にtrue
to1
とfalse
toを変換する組み込みの方法はあり0
ますか? これは、C、C++ などの言語では簡単です。
ちょっとした背景として、私は教科書の演習 ( F# を使用した関数型プログラミングの演習 2.4 )を解決しようとしていoccFromIth(str,i,ch)
ます。ch
j
str
j >= i
私の解決策は
let rec occFromIth (str : string, i, ch) =
if i >= str.Length then 0
else if i < 0 || str.[i] <> ch then occFromIth(str, i+1, ch)
else 1 + occFromIth(str, i+1, ch)
しかし、私はコードの重複が好きではないので、私は書きました
let boolToInt = function
| true -> 1
| false -> 0
let rec occFromIth (str : string, i, ch) =
if i >= str.Length then 0
else boolToInt (not (i < 0 || str.[i] <> ch)) + occFromIth(str, i+1, ch)
if... then... else...
別の方法は、C/C++条件演算子のスタイルで ,を使用することだと思います
let rec occFromIth (str : string, i, ch) =
if i >= str.Length then 0
else (if (not (i < 0 || str.[i] <> ch)) then 1 else 0) + occFromIth(str, i+1, ch)
また
let rec occFromIth (str : string, i, ch) =
if i >= str.Length then 0
else (if (i < 0 || str.[i] <> ch) then 0 else 1) + occFromIth(str, i+1, ch)
F# でこれを行う方法は何ですか?