如何在 F# 模块中定义可选参数?

2024-02-22

我正在尝试用 F# 重写一个小型 C# 库,但遇到了错误。我试图为模块中的方法定义可选参数,但编译器说“可选参数仅允许在类型成员上使用”。

我查过为什么你不能在松散的函数中使用它们 https://stackoverflow.com/questions/946159/f-why-cant-i-use-optional-parameters-in-loose-functions but 打字时static member or member我收到另一个错误 https://stackoverflow.com/q/56597149/1275774反而。

module Kingdom =
    let Rule (?years : int) =
        ()

我认为这会起作用,因为这就是我在阅读完之后所理解的你输入的方式微软文档 https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/parameters-and-arguments#optional-parameters关于它的文章。


通过使用其他方式 https://stackoverflow.com/a/13419343/1275774要定义“静态类”,您可以添加member到它。然后您可以使用可选参数。该类在 C# 中将显示为普通静态类。

[<AbstractClass; Sealed>]
type Kingdom private () =
    static member Rule (?years : int) = ()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 F# 模块中定义可选参数? 的相关文章

  • F# 交互,API 对 dll 引用的限制

    您如何解决类似这样的错误消息 Binding session to C Program Files x86 NLog NET Framework 4 0 NLog dll error FS0193 API restriction The a
  • F# 中的部分匿名记录

    我如何输入一个函数 该函数接受具有字段的记录a and 任何其他领域 与此等效吗标准机器学习F 中可以使用函数吗 fun f a string Hello a 尝试了以下内容 但这些似乎在语法上无效 let f r a string imp
  • 将 OCaml 转换为 F#:将 OCaml open_box 和 close_box 转换为 F#

    我正在将几个基于 OCaml 的模块转换为 F 并遇到了 OCaml 打印格式化函数open box 和 close box http caml inria fr pub docs manual ocaml libref Format ht
  • F# 图表示例

    我想使用内置功能或免费库在 F 中做一些基本的图表 我会对一个非常基本的例子感到非常非常满意 如果可能的话 饼图 示例数据 John 34 Sara 30 Will 20 Maria 16 其中整数是饼图中要表示的百分比 我最近安装了 VS
  • 对 F# 联合类型列表进行操作

    这是我的问题的延续F 联合类型列表 https stackoverflow com questions 13770911 f list of union types 感谢有用的反馈 我能够创建一个列表Reports with Report要
  • 对象中的公共可变字段

    是否可以在 F 中创建一个简单的公共可变字段 我正在创建一个将从 C 程序访问的库 并且我需要能够从 C 设置一个字段 C Equivalent public class MyObj public int myVariable F type
  • F# 有异步验证库吗?

    我在代码中经常使用 asyncResult 但它会在第一个错误时退出 asyncResult let a allGood let b thisReturnsError let c neverExecuted 但有时我想执行所有函数并总结错误
  • .NET 4 自旋锁

    以下测试代码 F 未返回我期望的结果 let safeCount let n 1000000 let counter ref 0 let spinlock ref lt SpinLock false let run i0 i1 for i
  • Scala REPL 中的类型信息

    如果我使用 F 解释器 我可以定义一个简单的函数 如下所示 gt Function to check if x is an integer multiple of y gt let multipleOf x y x y 0 val mult
  • 使用 F# 进行循环与递归

    这里的示例代码解决了一个项目欧拉问题 从数字 1 开始 按顺时针方向向右移动 方向 5 x 5 螺旋形成如下 21 22 23 24 25 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15 14 13
  • 类型 x 比值更难访问

    这是我的代码的抽象 module RootModule module private SubModule I want everything in this module to be inaccessible from outside th
  • 定义具有多种消息类型的消息传递域

    到目前为止 我见过的大多数 F 消息传递示例都使用 2 4 种消息类型 并且能够利用模式匹配将每条消息定向到其正确的处理函数 对于我的应用程序 由于处理和所需参数的不同性质 我需要数百种独特的消息类型 到目前为止 每个消息类型都是其自己的记
  • F#、FParsec 和递归调用流解析器(第二次)

    感谢您的回复我的第一篇文章 https stackoverflow com questions 26853718 f fparsec and calling a stream parser recursively and 我的第二篇文章 h
  • 如何更改 Rx Builder 实现来修复堆栈溢出异常?

    我正在尝试提出一个 Rx Builder 以在 F 计算表达式语法中使用反应式扩展 我该如何修复它 以免堆栈崩溃 就像下面的 Seq 例子一样 是否有计划提供 RxBuilder 的实现作为响应式扩展的一部分或作为 NET Framewor
  • Async.TryCancelled 不适用于 Async.RunSynchronously

    我尝试创建一个根据用户交互更新 UI 的代理 如果用户单击按钮 则应刷新 GUI 模型的准备需要很长时间 因此希望如果用户单击其他按钮 则取消准备并开始新的准备 到目前为止我所拥有的 open System Threading type p
  • ProjectCracker 与 .netstandard 2.0 项目

    我的团队最近从使用 net 框架转向使用 net 标准 2 0 作为我们的 F 库 我们有一些在项目上运行的内部脚本来自动生成 Markdown 文档 这些脚本使用 F 编译器服务 SDK 来分析代码并检索类型元数据 文档注释等 我们正在使
  • 如何在 F# 中将对象转换为泛型类型列表

    在下面的代码片段中 我的目的是将 System Object 可能是 FSharpList 转换为它所持有的任何泛型类型的列表 match o with list lt gt gt addChildList o gt list lt gt
  • 按属性值选择 XML 节点

  • `ImmutableSortedSet` 和 fsharp `Set` 有什么区别?

    BCL引入了一组Immutable Collections http blogs msdn com b bclteam archive 2012 12 18 preview of immutable collections released
  • f# 运行总计序列

    好吧 这看起来应该很容易 但我就是不明白 如果我有一个数字序列 如何生成由运行总计组成的新序列 例如 对于序列 1 2 3 4 我想将其映射到 1 3 6 10 以适当的功能方式 Use List scan https msdn micro

随机推荐

  • android 模拟器无法启动

    我正在尝试从 Android 虚拟设备管理器启动 Android 虚拟设备 Android 模拟器窗口打开 但屏幕仍显示在 Android 徽标上 并且没有进一步进展 在开始第二个 avd 之前它工作得很好 现在第一个 avd 和第二个 a
  • Spirit-Qi:如何编写非终结符解析器?

    我想写一个可以使用的解析器 作为 qi 扩展 通过my parser p1 p2 where p1 p2 是 qi 解析器表达式 其实我想实现一个best match解析器的工作方式类似于 qi 替代方案 但不选择第一个匹配规则 而是选择
  • 学习 jQuery 的 CSS 选择器

    我想学习 jQuery 在我看来 jQuery 只需选择你想要的元素 然后对其执行一些操作 但选择方式与CSS选择器很接近 而且我不熟悉CSS css选择器 因为我一直认为它相当不系统 我找不到任何规则 我对 CSS 选择器的了解如下 id
  • 在 Chrome 中,触发 $(document).ready() 时不会加载 资源。为什么?

    在 Firefox 和 IE 中 SVG SVG 文档在以下情况下检索 document ready 叫做 在 Chrome 中 getSVGDocument当以下情况时返回 null document ready 叫做 虽然似乎在大约 7
  • Htaccess 重写删除尾部斜杠

    Htaccess 以某种方式自动删除 url 末尾的所有尾部斜杠并只保留一个 例如http localhost api param1 http localhost api param1 变成http localhost api param1
  • 要安装多少个 wiki 实例?

    我被要求安装 Mediawiki 来保存公司内部网的文档 此外 我被要求安装several实例 每个贡献组一个 非技术用户获得一个 开发人员获得一个 管理人员获得一个 等等 我们的想法是为每个组提供单独的网络空间 有没有一种方法可以在一个实
  • 如何缓存从 Ajax 调用接收到的数据?

    我想缓存从服务器接收的数据 以便执行最少数量的 PHP MySQL 指令 我知道缓存选项是自动为 ajax 设置的 但是 每次调用 ajax 时我都会看到 MySQL 指令 即使 postdata 与之前的调用中的相同 我错过了什么吗 缓存
  • Code::Blocks 出现无效工具链错误

    Hello Debug uses an invalid compiler Probably the toolchain path within the compiler options is not setup correctly Skip
  • 等待句柄会释放线程获取的锁吗?

    当我有如下所示的代码时 我的问题是调用 signal WaitOne 的线程是否释放已获取的锁以供另一个线程获取锁 我认为这是一个微不足道的问题 但我尝试寻找类似的东西 却一无所获 如果有人可以阐明这一点并修改我的帖子 标题 使其更容易被将
  • 从 git 提交生成 PDF 日志

    我知道我可以使用 git log 以各种方式查看以前的提交 但我想知道这里是否有人可以推荐一些用于从 git 提交创建 PDF 或 HTML 日志的好工具 我希望能够生成类似于 Github 提交日志风格但具有不同信息的内容 如果人们对生成
  • 在数基之间转换数字

    我正在开发一个在数字基数之间进行转换的程序 例如八进制是 8 十进制是 10 字母A to Z可以被视为基数 26 我想将 A 转换为0 Z转换为25 AA 转换为27 BA 转换为53 在开始编码之前 我会在纸上进行编码 以便我了解整个过
  • 为什么 date() 不能正确地将 YYMMDDHHMM 转换为 MySQL 可接受的日期格式?

    我想要一个像这样的字符串 1511030830 YYMMDDHHMM 并创建一个 MySQL 时间戳 如下所示 2015 11 03 08 30 00 但是 当尝试这样做时 它将不起作用 string 1511030830 date dat
  • 以编程方式启动时 Appium 不会初始化驱动程序

    我正在使用 Java 和 Selenium 通过命令行初始化 Appium 以便在 Android chrome 浏览器上运行测试 然而 该过程运行无限时间 并且代码来自 DesiredCapabilities 该行没有被执行 代码 Pro
  • 列出给定类的所有内部类 - Python

    给定一个类 我如何列出它的所有inner课程 class Car some var var class Engine some other var var2 class Body another var var3 现在给出Car我希望能够列
  • Next JS在arcgis地图上的多个坐标上显示信息窗口

    下面是我的下一个 JS 代码 它显示了一个简单的 ArcGIS 地图 其中包含特定坐标上的点或标记 谁能告诉我如何在地图上显示点的弹出 信息窗口 例如我单击任意点 它将在其上打开相应的弹出窗口 import NavBar from comp
  • 从 Swift 初始化器调用方法

    假设我在 Swift 中有以下类 有明显的问题 class MyClass let myProperty String init super init self setupMyProperty func setupMyProperty my
  • 如何在 AWS Cognito 中编辑尝试更改密码的限制?

    我已经实现了更改密码功能 现在我想测试一下 但我面临着尝试的极限 我应该做什么来防止这个错误 已超出尝试次数限制 请稍后再试 我是 Cognito 团队的成员 这是不可配置的 我们确实有保护机制来防止用户滥用忘记密码的 API 这可能就是您
  • Keras 中的 add_loss 函数的用途是什么?

    目前 我偶然发现了变分自动编码器 并尝试使用 keras 让它们在 MNIST 上工作 我找到了一个教程github https github com keras team keras blob master examples variat
  • 如何按周添加两个日期中的日期?

    I have a table in which rows have dates as monday dates of the weeks Some consecutive rows may not have consecutive week
  • 如何在 F# 模块中定义可选参数?

    我正在尝试用 F 重写一个小型 C 库 但遇到了错误 我试图为模块中的方法定义可选参数 但编译器说 可选参数仅允许在类型成员上使用 我查过为什么你不能在松散的函数中使用它们 https stackoverflow com questions