演習 - 関数
この演習では、コードを再利用できるようにします。 チームの別のプログラマーが書いたコードを、あなたが関数に変換する必要があるとします。
関数の作成
まず、新しい F# プロジェクトをスキャフォールディングします。次に、コードの一部を取得し、それをパラメーターを持つ関数に変換します。
新しい F# プロジェクトを作成するには、
dotnet newを実行します。dotnet new console --language F# -o Functions cd Functions新しいプロジェクトが完成したので、コードを見てみましょう。
同僚のコードは次のようになります。
let no = card % 13 if no = 1 then "Ace" elif no = 0 then "King" elif no = 12 then "Queen" elif no = 11 then "Jack" else string noProgram.fs ファイルの既定のコードを次のコードに置き換えます。
let cardFace card = let no = card % 13 if no = 1 then "Ace" elif no = 0 then "King" elif no = 12 then "Queen" elif no = 11 then "Jack" else string noこのコードの先頭行
let cardFace cardが関数になります。 これで、パラメーターcardface()を受け取るcardという名前の関数になりました。cardface()関数の下に次のコードを追加します。printfn "%s" (cardFace 11)コンソールで
dotnet runを呼び出してプロジェクトを実行します。dotnet run次のような出力が表示されます。
Jack
おめでとうございます。 再利用可能にするコードの一部を受け取り、関数に変換しました。
型を追加する
同僚のコードを関数に変換しました。 このコードをさらに読みやすくするために、型定義を追加することにしました。
既存の関数
cardface()を次のように変更します。let cardFace (card:int) = let no = card % 13 if no = 1 then "Ace" elif no = 0 then "King" elif no = 12 then "Queen" elif no = 11 then "Jack" else string no次に、プロジェクト
dotnet runを実行します。dotnet run次のような出力が表示されます。
Jackコードは引き続き動作しますが、入力パラメーターに型を追加することで、より明確にできました。
cardface()関数を次のように変更します。let cardFace (card:int) :string = let no = card % 13 if no = 14 || no = 1 then "Ace" elif no = 13 then "King" elif no = 12 then "Queen" elif no = 11 then "Jack" else string noこの時点で、関数
:stringに戻り値の型を追加しました。つまり、関数から文字列が返されます。dotnet runプロジェクトを実行します。dotnet runもう一度、次の出力が表示されるはずです。
Jack
おめでとうございます。 これで、型が追加されました。