腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
2
回答
区分
联合
-
允许
模式
匹配
,
但
限制
构造
、
、
我有一个F#
区分
的Union,我希望将一些“
构造
函数逻辑”应用于
构造
union用例时使用的任何值。然而,问题是这个模块之外的任何人都不能在ValidValue上进行
模式
匹配
来检查结果,从而
限制
了被
区分
的Union的有用性。我希望
允许
外部用户仍然像其他DU一样进行
模式
匹配
并使用ValidValue,
但
如果它有一个私有
构造
函数,这是不可能的。我能想到的唯一解决方案是将DU中的每个值包装
浏览 34
提问于2019-01-17
得票数 12
回答已采纳
2
回答
受歧视联盟的F#
限制
、
我试图将一个小型编译器从C#移植到F#,以利用
模式
匹配
和
区分
联合
等特性。目前,我正在使用基于System.Linq.Expressions的
模式
对AST进行建模:一个抽象的基“表达式”类,每个表达式类型的派生类,以及一个
允许
在不进行多次转换的情况下打开表达式的NodeType我曾希望使用F#受歧视的
联合
来大大减少这种情况,但我遇到了一些似乎存在的
限制
: 强制公共默认
构造
函数(我希望对表达式
构造
进行类型检查和参数验
浏览 4
提问于2013-11-12
得票数 3
回答已采纳
2
回答
将
模式
匹配
限制
在
构造
函数的子集上
、
、
data Type | IntType = Add Type我想在Subtract下
限制
可能的类型,这样它只
允许
int或float。FloatType) = ()patternMatch (Subtract FloatType) = () 应该是一个详尽的
模式
匹配
是否有一种方法可以“
限制
”类型内的可能
构
浏览 0
提问于2019-04-07
得票数 3
回答已采纳
1
回答
F#异常类型的性质是什么
、
我们可以使用F#类型exception但是,当我们
匹配
它时,我们可以使用与
匹配
区分
的
联合
相同的语法。我试着搜索,
但
没有找到明确的答案。谢谢。
浏览 1
提问于2011-07-08
得票数 1
回答已采纳
2
回答
为什么GADT/存在数据
构造
函数不能在惰性
模式
中使用?
、
、
、
、
今天,在对存在性GADT
构造
函数进行
匹配
时尝试使用惰性
模式
时,我遇到了一个编译器错误: 为什么有这个
限制
?如果
允许
的话,会发生什么“坏”的事情?
浏览 1
提问于2013-01-26
得票数 30
回答已采纳
6
回答
Union在OOP中的使用
、
、
联合
可以用作一种类型,就像类和结构(有一些
限制
)一样,.It可以有成员函数。它可以用作OOP结构。作为OOP结构(不仅仅是数据类型)的Union有什么实际用途吗?或者它只是语言中一些没有用的残余部分?编辑: i
浏览 11
提问于2012-05-05
得票数 5
回答已采纳
4
回答
为什么我们需要求和类型?
、
假设一种语言不
允许
数据类型的多个值
构造
函数。Black = Blacktype Color = White :|: Black :|: Bluetype ColorsStartingWithB = Black :|: Blued
浏览 6
提问于2016-11-15
得票数 14
回答已采纳
1
回答
将Union<'a>转换为Union
、
、
假设我有一个定义如下的F#
区分
联合
:例如,如果我有一个这样的B,其中'T是int,我如何将它转换为另一个'T是string的B?我有一个与此类似的
联合
,但有更多的情况,目前我的
模式
匹配
如下: match u with | A(x) -> // some fancy logic here
浏览 1
提问于2014-01-21
得票数 2
3
回答
使用F#
区分
的
联合
备选方案作为参数类型
、
我尝试使用
区分
联合
的特定成员作为参数类型。(i, j)) = member this.J = j let instance = SomeType(a)let doSomethingWithA (A(i, j)) = i + j 但是类型签名是SomeUnion -> int而不是A -> int,它会抱怨
模式
匹配
不完整(给出签名是可以理解的我相信在F#中,
联合<
浏览 0
提问于2013-01-14
得票数 6
2
回答
差别工会类型和歧视工会类型/F#
、
、
、
因此,我正在阅读有关工会类型的正式文本文档,我认为这与F#中的“歧视联盟”(当然它们有不同的语法,
但
概念相同)是一样的,因为我有F#背景,并且考虑到两者都得到微软的支持。但是从文档来看,F#并没有真正
区分
“
联合
类型”和“受歧视的
联合
”:
联合
类型:所以我想知道这些概念本身是否真的有区别,还是仅仅是一些依赖于语言的概念到目前为止,我理解的是,F#中的
联合
类型也是受歧视的
联合
类型,因为您可以使用
浏览 3
提问于2020-05-06
得票数 5
回答已采纳
2
回答
如何使用F#
区分
的
联合
类型作为TestCase属性参数?
我正在尝试测试来自F#函数的返回结果是否与预期的受歧视的
联合
情况相
匹配
。我使用NUnit创建测试,它不喜欢
区分
的
联合
类型作为TestCase参数。callNumber callType =我希望这是NUnit的一个
限制
如何使用受歧视的
联合
案例作为测试用例属性参数?
浏览 3
提问于2015-10-27
得票数 6
回答已采纳
2
回答
为
区分
的
联合
类型实现快速CustomEquality和CustomComparison
、
、
、
、
为了引用一些带有键的坐标,我想使用
区分
的
联合
类型,因为它们
允许
各种类型的有效
模式
匹配
。AssetKey也是一种非常相似的
区分
联合
类型:type AssetKey所以这一切都运行得很好,
但
速度很慢。据我所知,如果调用sortKey函数,则会再次构建整个密钥,特别是再次调用toString函数。如果我使用结构或类,性能
浏览 2
提问于2012-03-01
得票数 1
2
回答
Scala
构造
模式
与抽取
模式
匹配
、
构造
函数
模式
和提取器
模式
匹配
有什么区别?在Scala的编程中,作者
区分
了Ch 15中的
构造
函数
模式
和Ch 26中的提取器
模式
。
构造
函数
模式
的示例:case class BinOp(operator: String, left: Expr, right: Expr) extends Expr
浏览 4
提问于2017-03-06
得票数 3
回答已采纳
1
回答
typescript中
联合
类型的解构
有没有一种方法(类似于函数式语言中的
模式
匹配
)来分解TypeScript中的
联合
类型,也就是像这样的
构造
: case f: Foo} 如果没有这样的
构造
--创建这样的
构造
有什么技术上的困难吗?
浏览 0
提问于2015-11-21
得票数 7
4
回答
在.NET中表示不可变列表的最佳方式是什么?
、
、
、
我最近开始将F#用于“真正的工作”,并重新发现了不可变数据结构的美妙之处,比如F#中的
区分
联合
和记录。我还发现,在C#中使用它们非常简单,特别是因为它们不需要对F#运行时的任何直接依赖。但是,由于我无法控制
区分
联合
或记录的
构造
函数,因此这些类型的实例的创建者可以提供一个在使用时可能更改或抛出的IEnumerable<>实现(例如LINQ表达式)。但是,它确实
允许
IEnumerable<>所不支持的F#
模式
匹配
。它在列表的实际表示
浏览 0
提问于2010-09-01
得票数 6
回答已采纳
2
回答
在F#中将system.Object转换为特定类型
我有一个标准类型,用于在函数之间传递消息和对象,该函数有一个可选的MessageObject,即System.Object。 type StatusMessage = { MessageObject: Object option} 在下面的特定函数中-我知道消息对象将始终包含以下特定类型,并且我希望能够在函数中访问该类型 type SingleCorrectRecord = { Line: RowTransact
浏览 37
提问于2021-11-12
得票数 2
2
回答
Elm中的通用
模式
匹配
我正在尝试构建一个泛型映射函数,它将从一个
联合
类型中提取一个可能的内部类型,将一个转换应用到内部值并将其映射回外部类型。还有其他方法可以做到这一点吗?
浏览 0
提问于2019-09-06
得票数 3
回答已采纳
1
回答
用于DSL的带有
区分
联合
的fparsec解析替代方案
、
、
在我的例子中,Add和Mul在运算符之前都有相同的
模式
,所以只有p1在工作。我如何重构它,以便解析我的输入?在fparsec文档解决方案示例中,它的工作方式只是解析,而不是
构造
区分
的
联合
实例。在我的例子中,我必须知道哪个
模式
匹配
,这样我才能创建Add或Mul
浏览 3
提问于2017-01-09
得票数 3
1
回答
如何在F#中折叠
区分
并集上的
匹配
、
在F#中,如何获取返回object的函数的结果,并将其转换为可
区分
的
联合
?我想通过将返回的对象转换成一个有区别的
联合
来给它一些结构,这样我以后就可以
匹配
它了。 直接类型转换不起作用,
联合
类型也不
允许
有
构造
函数,所以我也不能直接把它放进去。怎样做才是正确的呢?
浏览 0
提问于2016-12-09
得票数 4
2
回答
对
区分
的
联合
进行
匹配
、
、
、
我想要做的是像在C#中使用枚举一样使用
区分
联合
,然后打开它。
浏览 0
提问于2011-02-21
得票数 3
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Java 14 特性专题报道:记录
Excel催化剂开源第24波-较VBA更强大的.Net环境的正则表达式
剖析Java15新语法特性
JavaScript 正则表达式对象 参考手册
理解索引:索引优化
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券