相关疑难解决方法(0)

如何使非法价值无法代表?

功能编程中的一种设计方法是使非法国家无法代表.我总是看到这是通过类型的结构来完成的,但类型的价值呢?

如果我有一个名为Email的字符串怎么办?我只希望它保留一个有效的电子邮件地址(针对某些正则表达式进行检查)?如何以功能方式(不使用OOP)执行此操作?

f# haskell functional-programming

22
推荐指数
4
解决办法
2258
查看次数

如何对F#记录进行参数验证

F#可以很容易地定义类型

type coords = { X : float; Y : float }
Run Code Online (Sandbox Code Playgroud)

但是如何在不进入更详细的类定义语法的情况下为构造函数定义约束/检查参数?例如,如果我想从(0,0)开始coords或抛出异常.

此外,如果我将我的定义更改为类,我需要实现Equals()等所有我不想要的样板代码(以及我在C#中试图摆脱的那些).

f# constructor record

18
推荐指数
2
解决办法
2348
查看次数

F#Choice类型的用例

我已经意识到F#Choice类型已经有一段时间了,但是我想不出任何我使用它的地方而不是用有意义的命名案例定义我自己的联合类型.

MSDN文档没有提供太多建议("有两种选择的活动模式的帮助程序类型.")并且没有任何示例用法.

我必须遗漏一些东西 - 这种类型相对于自定义联盟的主要优势是什么?

f#

13
推荐指数
1
解决办法
4319
查看次数