我有 -> 输入 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)
这可能更接近你的想法。
但是这个解决方案不太安全:
关于types - OCAML 如何找到变体的下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15835659/