F# 如何约束函数不接受部分应用的函数
我有一个序列化函数,我将数据输入其中,有时我会错过数据生成函数的一个参数,因此我序列化了部分应用的函数。Json.Net对此并不在意,但提供了一个很好的空对象F# 如何约束函数不接受部分应用的函数,f#,type-constraints,partial-application,F#,Type Constraints,Partial Application,我有一个序列化函数,我将数据输入其中,有时我会错过数据生成函数的一个参数,因此我序列化了部分应用的函数。Json.Net对此并不在意,但提供了一个很好的空对象{} 我想约束序列化函数不接受部分应用的参数: let mySerializer<'a when : 'a isnotafunction> (data:'a) : string = JsonConvert.SerializeObject(data) let mySerializer(数据:'a):字符串= JsonC
{}
我想约束序列化函数不接受部分应用的参数:
let mySerializer<'a when : 'a isnotafunction> (data:'a) : string =
JsonConvert.SerializeObject(data)
let mySerializer(数据:'a):字符串=
JsonConvert.SerializeObject(数据)
到目前为止,我还没有找到这样做的方法。您可以检查
'a
是否是FSharpFunc
的一个实例,我该如何将其变成一个约束?Ie'a when:'a not:>FSharpFunc
相关答案: