As a learning Exercise with the FizzBuzz code in F#.
ここのコードを参照すると、正常に機能し、見栄えがよくなります
上記のコードでは、以下の if 条件の代わりにmatchを学習/使用したいので、任意の int 値に対して機能する以下の関数を書きました。
let fizzbuzz num =
match num with
| x when (x % 3 = 0 && x % 5 = 0) -> printfn "%s" "FizzBuzz"
| x when (x % 3 = 0) -> printfn "%s" "Fizz"
| x when (x % 5 = 0) -> printfn "%s" "Buzz"
| _ -> printfn "%s" (num.ToString())
;;
出力:
fizzbuzz 15;;
FizzBuzz
val it : unit = ()
ただし、上記のコードでは、リストを入力として使用し、関数を再帰的にする必要がありました。どうすればできますか?リストの動作、つまりrecurisve to を使用h::t
して渡すことを理解しています。私は推測する構文に苦労しています。t
fizzbuzz
上記のコードでリスト (パターン マッチングとアキュムレータ引数) を使用する方法についてのガイダンスを提供してください。
構文エラーのために完全なコードをもう一度入力していることに気付いたので、少ないキーストロークで F# Interactive ウィンドウを使用する方法に関するブログ/リファレンスはありますか?