所以我正在寻找一个函数,它需要一个 int 和一天(下面是我的一天类型)并返回给定日期前 n 天的一天。
我将类型日定义为
type day = Sun | Mon | Tues | Wed | Thurs | Fri | Sat;;
以及第二天返回的函数:
let next (d:day) : day =
match d with
Mon -> Tues;
| Tues -> Wed;
| Wed -> Thurs;
| Thurs -> Fri;
| Fri -> Sat;
| Sat -> Sun;
| Sun -> Mon;
;;
我正在寻找如上所述构建一个函数,我认为它需要对 next 进行递归调用以不断增加这一天,直到它提前 n 天,但我完全不知道如何在 OCaml 中定义它。我试图定义一些东西,但到目前为止只创建了一个与下一个功能相同的函数,例如:
let rec ndays (n:int) (d:day) : day =
if n=0 then next d else ndays (pred n) d;;
我觉得这很接近,但众所周知,接近只有马蹄铁和手榴弹才算。有人对我如何进行有任何提示吗?