これまでのまとめ
本日のお品書き
ついに来ました関数型言語…! はじめてF#を触ってみます。
ただ現時点ではいろいろこねくり回した関数型の真髄みたいな記述はできません…。
慣れたら面白そうなんですけどね。
FizzBuzz
main.fsx
let fizzbuzz = function
| n when n%15=0 -> printfn "FizzBuzz"
| n when n%3=0 -> printfn "Fizz"
| n when n%5=0 -> printfn "Buzz"
| n -> printfn "%d" n
List.iter fizzbuzz [1..100]
-
|
は関数内のパターンマッチ- パターンとして使えるものがいろいろある。今回は変数
n
。n
の値に対する場合分けとしてwhenを導入している。 - https://learn.microsoft.com/ja-jp/dotnet/fsharp/language-reference/pattern-matching
- パターンとして使えるものがいろいろある。今回は変数
-
List.iter $1 $2
で、$2
の配列に対して$1
をそれぞれ実行している
おまけ:実行方法
今回はdotnetコマンドを使ってスクリプトファイルを実行するようにしました。対話式など、そのほかの使い方もあるようです。
# edit main.fsx
dotnet fxi main.fsx
dotnetコマンドでは他にもプロジェクトを作成する方法もありそうです。今回は簡単なFizzBuzzなので上記の方法で問題ありませんでしたが、もう少し複雑なことをやろうと思ったら下の方法が良いのかもしれないですね。
dotnet new console -lang F# -o fizzbuzz -f net6.0
cd fizzbuzz
# edit Program.fs
dotnet run