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#核心库无法编译,结构元组的标志为“";错误FS0039:类型';结构';“未定义”;_F# - Fatal编程技术网

F#核心库无法编译,结构元组的标志为“";错误FS0039:类型';结构';“未定义”;

F#核心库无法编译,结构元组的标志为“";错误FS0039:类型';结构';“未定义”;,f#,F#,这是一个进一步的发展,并根据尊敬的社区成员mydogisbox的建议重新发布 我正试图用标志编译F#Core库,这些标志将生成2元组结构。标志是FX\u NO\u TUPLE和TUPLE\u STRUXT。相关代码开始 TUPLE\u STRUXT出现在prim-types.fs和tastops.fs中,因此我将标志添加到了FSharp.Core.fsproj和FSharp.Compiler.fsprojFX\u NO\u TUPLE仅出现在prim-types.fs中,因此我将其添加到了FSh

这是一个进一步的发展,并根据尊敬的社区成员mydogisbox的建议重新发布

我正试图用标志编译F#Core库,这些标志将生成2元组结构。标志是
FX\u NO\u TUPLE
TUPLE\u STRUXT
。相关代码开始

TUPLE\u STRUXT
出现在prim-types.fs和tastops.fs中,因此我将标志添加到了
FSharp.Core.fsproj
FSharp.Compiler.fsproj
FX\u NO\u TUPLE
仅出现在prim-types.fs中,因此我将其添加到了
FSharp.Core.fsproj

运行
build.bat
后,在构建核心库时失败。有两个主要错误:

prim types.fsi(1251,10):错误FS1175:FSharp.Core.dll中的所有记录、联合和结构类型必须显式标记为“StructuralComparison”或“NoComparison”

可以通过在prim-types.fsi中将结构元组标记为
StructuralComparison
StructuralEquality
来处理此错误

prim-types.fs:错误FS0039:未定义类型“Struct”

这个我绕不过去。这涉及到结构元组的定义:

[<Struct>]
type Tuple<'T1,'T2> = 
    new (v1,v2) = { Item1 = v1; Item2 = v2 }
    val Item1 : 'T1 
    val Item2 : 'T2
[]
类型元组=
新的(v1,v2)={Item1=v1;Item2=v2}
val项目1:'T1
val项目2:'T2
Struct
属性已成功用于同一核心库中的例如
seq.fs
。该库可能已经有一段时间没有使用结构元组标志进行编译了,此后发生了一些变化。对这段代码有更好理解的人知道如何解决这个问题吗