gpt4 book ai didi

f# - 在F#中实现约束数字类型的习语/实践?

转载 作者:行者123 更新时间:2023-12-04 04:05:34 29 4
gpt4 key购买 nike

假设需要一种数字数据类型,其允许值在指定范围内。更具体地说,假设要定义一个整数类型,其最小值为0,最大值为5000。这种情况在很多情况下都会出现,例如在对数据库数据类型,XSD数据类型进行建模时。

在F#中为此类类型建模的最佳方法是什么?在C#中,执行此操作的一种方法是定义一个结构,该结构实现范围检查重载的运算符,格式等。此处描述了F#中的类似方法:http://tomasp.net/blog/fsharp-custom-numeric.aspx/

尽管我不需要真正的自定义类型,但是我真的不需要。我真正想要的是域受限的现有类型。例如,我希望能够写类似

type MyInt = Value of uint16 where Value <= 5000 (pseudocode)

是否有在F#中执行此类操作的简便方法,还是实现上述博客文章中所述的实现自定义数字类型的最佳方法?

最佳答案

您指的是类型理论中所谓的精简类型,正如Daniel所指出的,请查找F*。但这是一个研究项目。

关于使用F#进行操作,除了Tomas的文章外,还请看designing with types系列。

关于f# - 在F#中实现约束数字类型的习语/实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20788353/

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