gpt4 book ai didi

F# 核心库源代码具有将元组编译为结构的标志,但我无法使其工作

转载 作者:行者123 更新时间:2023-12-01 00:59:11 28 4
gpt4 key购买 nike

这是对 this proposal 的后续问题.

显然,F# Core 库源代码有一个标志,允许将 2 元组编译为结构体。见 here .我做了以下事情:

  • 添加了定义 TUPLE_STRUXT标志到 FSharp.Core.fsprojFSharp.Compiler.fsproj .
  • 内置 build.bat .
  • 替换 C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0 的内容和 C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.1.0使用适当的构建文件。

  • 我的项目编译引用正确(新建) FSharp.Core.dll .但是,2 元组仍然编译为类。

    难道我做错了什么?或者这个代码分支实际上无关紧要?元组被编译为 System.Tuple 而不是此代码中声明的类型(无论是否设置了 TUPLE_STRUXT 标志)这一事实将表明后者。有没有办法让它工作?

    编辑:在设置标志后 FX_NO_TUPLE源不编译。我无法解决的错误是 prim-types.fs <527,7>: error FS0039: The type 'Struct' is not defined .也就是说,违规行是结构元组定义的第一个:
    [<Struct>]
    type Tuple<'T1,'T2> =
    new (v1,v2) = { Item1 = v1; Item2 = v2 }
    val Item1 : 'T1
    val Item2 : 'T2

    有谁知道是什么原因造成的?

    最佳答案

    TUPLE_STRUXT取决于另一个标志, FX_NO_TUPLE ,也应该设置。

    关于F# 核心库源代码具有将元组编译为结构的标志,但我无法使其工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24993904/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com