gpt4 book ai didi

types - OCAML 如何找到变体的下一个元素

转载 作者:行者123 更新时间:2023-12-05 00:30:49 24 4
gpt4 key购买 nike

我有 -> 输入 week = MON |周二 | WED......我想创建明天返回的函数!例如,如果我调用“tomorrow MON”,该函数将返回 TUE。

最佳答案

没有允许您执行此操作的内置语言结构。所以你应该自己编写函数:

let tomorrow = function
| MON -> TUE
| TUE -> WED
...

另一种可能性是实现这些功能:
val int_of_week: week -> int
val week_of_int: int -> week

碰巧用 Obj.magic 编写这些函数是微不足道的。他们将允许您明天实现:
let tomorrow w =
week_of_int ((int_of_week w + 1) mod 7)

这可能更接近你的想法。

但是这个解决方案不太安全:
  • 函数明天假设 int_of_week MON = 0,int_of_week TUE = 1 等等;
  • 对于不在 0 和 6 之间的整数,您需要记录 week_of_int 的行为;
  • 最后但并非最不重要的是,Obj.magic 实际上并不是语言的一部分。
  • 关于types - OCAML 如何找到变体的下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15835659/

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