Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 如何约束函数不接受部分应用的函数_F#_Type Constraints_Partial Application - Fatal编程技术网

F# 如何约束函数不接受部分应用的函数

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

我有一个序列化函数,我将数据输入其中,有时我会错过数据生成函数的一个参数,因此我序列化了部分应用的函数。Json.Net对此并不在意,但提供了一个很好的空对象
{}

我想约束序列化函数不接受部分应用的参数:

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
相关答案: