F#校验算法范围?

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

F#允许通过打开来使用检查算法Checked模块,例如:

open Checked
let x = 1 + System.Int32.MaxValue // overflow

比如C#允许使用关键字checked:

int x = 1 + int.MaxValue;             // ok
int y = checked { 1 + int.MaxValue }; // overflow

笔洁7e笔洁7e提问于
葉天楓梦想是要有的,万一实现了呢回答于

可以声明表示int应该只用于检查操作:

type CheckedInt = Ch of int with
  static member (+) (Ch a, Ch b) = Checked.(+) a b
  static member (*) (Ch a, Ch b) = Checked.(*) a b
  static member (+) (Ch a, b) = Checked.(+) a b
  static member (*) (Ch a, b) = Checked.(*) a b

然后可以定义一个计算表达式生成器

type CheckedBuilder() = 
  member x.Bind(v, f) = f (Ch v)      
  member x.Return(Ch v) = v
let checked = new CheckedBuilder()  

最终会有这样的结果:

checked { let! a = 10000 
          let! b = a * 10000 
          let! c = b * 21 
          let! d = c + 47483648 // !
          return d }

回答过的其他问题

乘车码小程序中应用了腾讯云哪些黑科技?

葉天楓梦想是要有的,万一实现了呢
确实有很多人问:腾讯乘车码稳定性怎么样呀?早晚高峰会不会死机或者数据出错呀,就指着这乘车码赶时间,身上没卡也没钱,高峰期崩坏了那不是更绝望? 其实在腾讯乘车码使用过程中,腾讯云有一系列措施保护大家的心脏,不让“崩坏”的情况发生。 基于“乘车码”作为公共交通工具的这一属性,对于数据...... 展开详请

如何在微服务架构中实现API网关?

葉天楓梦想是要有的,万一实现了呢
就我个人理解而言,我推荐你可以使用三种方法:完全自定义,基于框架和基于产品。 你可以采用API网关的标准从头开​​始构建你的API网关,但是,不建议我这样做,除非你使用开放的源代码或第三方软件来构建你的API,否则完全从0开始构建起你的API网关,这将是非常没有效率的。不要重复发...... 展开详请

地域写的是广州、上海。贵州用户怎样用?

葉天楓梦想是要有的,万一实现了呢

机房在那是无所谓的,使用方法都是一样的。

同一腾讯云账号完成了企业认证,送了免费套餐,更新企业认证后还会送免费套餐么?

葉天楓梦想是要有的,万一实现了呢
已采纳

域名解析无法完成企业认证?

葉天楓梦想是要有的,万一实现了呢

域名所有者,就是注册时候填写的人,比如你填写的某某公司那么就需要 上传营业执照。而不是法人

登陆不上去免费你们的工作人员联系一下我可以不?

葉天楓梦想是要有的,万一实现了呢

这个登录问题还是自己先看看新手帮助。不然会很麻烦的。

关于作者

葉天楓

梦想是要有的,万一实现了呢

所属标签

扫码关注云+社区