1

このシンプルな機能

let s =
    function
    | [] -> [[]]
    | list -> []::list

タイプ ('a List List -> 'a List List) があります。したがって、'a はジェネリックであるため、引数として任意の深さのリストを受け入れます。私の問題は、入力リストの深さを常に指定する必要があることです。そうしないと、F# Interactive が文句を言います。例えば

s []

動作しません

s ([]: int List List)

意思。同様に、

s [[[]]]

動作しませんが

s ([[[]]]:int List List List)

します。したがって、これは単なる例ですが、一般的にそのような明示的な型付けを回避する方法はありますか?

ありがとう

4

1 に答える 1