2

配列を渡して値を出力できる単純な F# 関数を作成しようとしていますが、問題が発生しています。これが私がこれまでに持っているものです:

let a = [| a; b; c; d |];;

let f arrayFunction (string[] array) = function
    for b=0 to array.Length
      Console.WriteLine(array.[]);;
4

3 に答える 3

6

パラメーターを定義するための F# 構文は、C# 構文とは逆です。F# では、パラメーターの名前が最初に来て、次に型が続きます (2 つを区切るためにコロンを使用します)。

ここでもキーワードは必要ありませんfunction。通常のletバインディングだけです。これfunctionは、匿名のパターン マッチング関数を作成するためのものです。ただし、ループdoの行末にa を追加する必要があります。for最後に、toF#forループ内の の後の値は包括的であるため、配列の長さから 1 を減算する必要があります。そうしないと、IndexOutOfRangeException が発生します。

関数は次のように記述する必要があります。

let a = [| a; b; c; d |];;

let f arrayFunction (array : string[]) =
    for b = 0 to array.Length - 1 do
        Console.WriteLine (array.[b]);;
于 2013-04-28T16:39:22.417 に答える
3

ジャックの答えは正確ですが、F# にはこれらの種類のタスクを実行するための組み込み関数があります。この例では、配列を Array.iter に送信することができます。これは、各アイテムを反復処理し、アイテムを文字列 -> ユニット関数に渡します。

したがって、例は次のようになります。

let a = [| "a"; "b"; "c"; "d" |];;
let f arrayFunction (array : string[]) =
    array |> Array.iter arrayFunction;;

a |> f Console.WriteLine;;
于 2013-04-28T20:18:24.197 に答える