F# - 了解使用泛型的类型

2024-01-17

我将在 10 天后参加 F# 考试,由于我目前正在做旧的考试集,因此我在理解泛型尤其是具有两个多态参数的类型时遇到了问题。

这些问题应该很容易解决,但它在语法上是如何运作的,我不确定。 旧考试题如下:

以下类型Sum<'a,'b>包含两种不同的值

type Sum<'a,'b> = 
| Left of 'a
| Right of 'b

现在我需要写两个类型的值Sum<int list, bool option>,应该使用定义Left和另一个Right.

如果你定义let sum1 = Left "Hello World它评估为val sum1 : Sum<string,'a>,但我找不到创建的方法Sum<int list, bool option>.

你会如何解决它?


如果你要写

let sum1 = Sum<string,int>.Left "Hello World"

你会得到一个Sum<string,int>

所以如果你需要一个Sum<int list, bool option>然后.....

(公平地说,在现实生活中,有一个Sum<string,'a>并不是真正的问题,因为“a可以成为任何东西,如果它需要成为a”bool option或者无论如何,类型推断通常会为你做艰苦的工作并限制'a)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

F# - 了解使用泛型的类型 的相关文章

随机推荐

  • WPF - 自定义设计音量控制

    我使用 WPF 已经有一段时间了 我需要通过互联网创建以下控件 但找不到合适的 任何人都可以帮助如何实现此功能 单击控件时 值应该增加或减少 我发现我可以使用音量控制或滑块 但不清楚我应该使用什么 谢谢期待 我更喜欢使用进度条来显示此类内容
  • 如何在 Visual Studio 中添加高优先级 TODO 注释?

    添加这样的评论 TODO Refactor this code 在我可以查看的任务列表中创建一个任务等 有一列标记为 让您可以按优先级对这些任务进行排序 如何设置特定任务的优先级 任务的优先级取决于您用来标记它的关键字 您可以通过转到 工具
  • 克隆 TypeScript 对象

    我有一个打字稿课程 export class Restaurant constructor private id string private name string public getId string return this id p
  • 如何从 tmux 会话获取 stdout 和 stderr?

    我正在linux系统中编写一个示例python程序 我在用tmux https linux die net man 1 tmux创建会话并在 tmux session 中执行另一个脚本 我想将 stdout 和 stderr 从 tmux
  • Bash 复杂的管道依赖关系

    I m trying to model a build concurrent pipeline in a single Bash script I know I can use other tools but at this point I
  • OpenGL:在两个元素之间画线

    我需要在我创建的两个网格之间画一条线 每个网格都与不同的模型矩阵相关联 我一直在思考如何做到这一点 我想到了 glMatrixMode GL MODELVIEW glLoadMatrixf first object model matrix
  • iframe 将 origin 发送为 null

    我有一个 iframe 内容是从我正在使用的第三方库注入的 该库正在注入用户需要提交的表单 问题是 当表单初始化时 它们正在执行一些请求 并且标头源作为空值发送 这会导致问题 因为它们的服务器不允许空值 我尝试添加沙箱属性 甚至尝试伪造调用
  • 为什么 request.body 未定义?

    我有一个 Node js 服务器 其中包括 bodyparser 和所有内容 var express require express var dbcon require app db databaseconnection var bodyP
  • Java 相当于 .NET 的 DateTime.Parse?

    我正在开发一个 java 类 该类将与 Pervasive Data Profiler 一起使用 该类需要检查日期字符串是否适用于 NET 的 DateTime Parse 是否有等效的类或第三方库可以为我提供与 NET 的 DateTim
  • 如何从 MP3 的 URL 获取其长度?

    如果我知道 MP3 文件的 URL 获取其长度 比特率 大小等最简单 最快的方法是什么 如何仅下载 MP3 的 ID3 标签部分来获取这些详细信息 您需要查看 mp3 文件中的 ID3 标签 除非您在其他地方跟踪您想要的元数据 要专门获取文
  • 为什么我的 SQL Server 审核触发器会扰乱来自 Access 的 OBDC 调用/刷新?

    我在其中一个表上实现了一个审核触发器 它基本上将旧记录和新记录以及日期和用户复制到名为 Audit 的表中 我将在下面发布我的脚本 问题是 当我在 Access 中插入新记录然后按 Tab 进行切换时 它会刷新并显示表中的第一条记录 下面是
  • 消除平均数值的子查询

    Quest 查询选择以 Vancouver 开头且距离以 Vancouver 开头的所有位置的中心 5 分钟范围内的所有点 例如 Vancouver South Fraser Vancouver Fairview 和Vancouver Ba
  • 跨文件的 SQLAlchemy 类

    我试图弄清楚如何将 SQLAlchemy 类分布在多个文件中 但我一生都无法弄清楚如何做到这一点 我对 SQLAlchemy 还很陌生 所以如果这个问题很微不足道 请原谅我 考虑这 3 个类每个人都有自己的文件 A py from sqla
  • 将 Eclipse 替换为 Sublime Text 2/3 for java

    有没有人设法为他们的基于 java 的应用程序构建一种使用 Sublime Text 2 或 3 而不是 eclipse 的方法 我们在 eclipse mac 中提供了 java 并支持 Maven 和 git 我们本身并不在 Eclip
  • 如何理解重定位部分“.rela.plt”的字段

    我试图了解 Linux 上共享库的动态链接 给出重定位部分 rela plt 的以下转储 Offset Info Type Sym Value Sym Name Addend 000000373f68 0f8300000007 R X86
  • Silverlight AutoCompleteBox 大写输入

    我需要在 Silverlight 4 应用程序的 AutoCompleteBox 中强制输入大写字母 在 TextBox 中 可以通过替换 KeyDown 事件上的 Text 属性来完成 例如 control Text enteredCha
  • Internet Explorer 中的 JavaScript 故障排除工具

    我大量使用 Firebug 和 Mozilla JS 控制台 但时不时地会遇到仅 IE 的 JavaScript bug 这真的很难定位 例如 第 724 行错误 当源 HTML 只有 200 行时 我想要一个轻量级的 JS 工具 a la
  • 火花提交:--jars 不起作用

    我正在为 Spark Streaming 作业构建指标系统 在系统中 指标是在每个执行器中收集的 因此需要在每个执行器中初始化指标源 用于收集指标的类 指标源被打包在一个jar中 提交作业时 使用参数 jars 将jar从本地发送到每个执行
  • 使用Java读取名称中带有空格的文件?

    文件的原始名称是1 00100 0042 jpg 我有个问题 java net URISyntaxException Illegal character in path at index 49 file opt storage user d
  • F# - 了解使用泛型的类型

    我将在 10 天后参加 F 考试 由于我目前正在做旧的考试集 因此我在理解泛型尤其是具有两个多态参数的类型时遇到了问题 这些问题应该很容易解决 但它在语法上是如何运作的 我不确定 旧考试题如下 以下类型Sum lt a b gt 包含两种不