ように行動していませんF#の型コンストラクタは、私はこのようなタイプを定義する場合、関数
Items [1;2;3]
をただし、次のようにはありません作品:
[1;2;3] |> Items
エラーメッセージは次のとおりです。
Type mismatch. Expecting a
int list -> 'a
but given a
seq<int> -> Foo
int list
をコンパイラでseq<int>
に変換できませんか。 Items
コンストラクタは通常の関数であった場合、私はどちらかの方法でそれを呼び出すことができます:
let length ints = Seq.length ints
printfn "%A" (length [1;2;3])
printfn "%A" ([1;2;3] |> length)
コンストラクタをファーストクラスの関数として使用することは、かなり新しい機能です(新しいものではありませんが、それでもなお機能します)。 http://stackoverflow.com/questions/531178/using-the-f-pipe-symbol-with-an-object-constructorを参照してください。これはバグかもしれません。 – mydogisbox
OK。誰かがMicrosoftのF#チームにバグを報告する方法を知っていますか? – brianberns
https://github.com/fsharp/fsharp/issues/new – jpierson