【问题标题】:OCaml: Converting / casting bool to intOCaml:将 bool 转换为 int
【发布时间】:2015-12-01 23:43:10
【问题描述】:

如何将 ocaml 布尔值转换为整数? (没有int_of_bool 函数。)

【问题讨论】:

    标签: casting ocaml


    【解决方案1】:

    2020年,您可以使用Bool.to_int。 来自 Bool 库文档:

    val to_int : bool -> int
    如果 b 为假,b 为 0,如果 b 为真,b 为 1。

    来源:https://caml.inria.fr/pub/docs/manual-ocaml/libref/Bool.html

    【讨论】:

      【解决方案2】:

      这是一种可能的实现方式:

      let int_of_bool b = if b then 1 else 0
      

      OCaml Batteries Included 库在其BatBool module 中有一个函数to_int

      【讨论】:

      • OCaml 没有将布尔值转换为整数的特定函数有什么原因吗?
      • 在考虑了这一点后,我决定这不是你需要经常做的事情。 OCaml 标准库一直是相当斯巴达式的——在我看来,它 斯巴达式了。 Core 和 Batteries 等其他库正在用更丰富、更一致的功能集来填补空白,即使它们是微不足道的和/或不常用的。
      • @hlin117:从概念上讲,布尔值和整数没有理由可以转换。为什么是真1?为什么是假0?为什么不是其他号码?除了这些整数是 C 中比较运算符的结果之外,我想不出任何理由,这与 OCaml 完全无关。
      • 这是一个中肯的评论。但是 OCaml 提供了对整数的逻辑运算 landlor,这提供了一些理由。您可以将 bool 值想象为 1 位整数。我认为逆运算(int -> bool)的任何特定选择都更难激发。
      猜你喜欢
      • 2017-02-24
      • 1970-01-01
      • 2014-09-19
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 2016-11-29
      • 2012-01-14
      • 1970-01-01
      相关资源
      最近更新 更多