1
그래서 int와 하루 (아래에 하루 종일)의 함수를 구현하고 주어진 날보다 n 일 앞의 날짜를 반환하는 함수를 만들려고합니다.주어진 날로부터 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;
;;
나는 기능을 구축 찾고 있어요를, 나는 그것을 생각하고 있어요 앞으로 n 일이 될 때까지 계속 반복적으로 호출해야하지만 OCaml에서이를 정의하는 방법이 완전히 부족합니다. 나는 몇 가지를 정의하기 위해 노력했지만, 지금까지 전용으로 다음에 같은 일을하는 함수를 만들었 등 :
나는이 느낌let rec ndays (n:int) (d:day) : day =
if n=0 then next d else ndays (pred n) d;;
이 가까이 있지만 우리 모두가 알다시피, 가까운에서만 계산 말굽과 수류탄. 누구든지 내가 어떻게 진행할 수 있는지에 대한 조언이 있습니까?
아, 미안 해요, 난 하나 개의 사본의 이름을 변경하지만 다른하지, 내가 편집하자! – Bizzle
술집은 d가 다른 일이 될 수 있음을 나타냅니다. 초기 함수가 int와 하루가 걸리도록이 값을 수정할 수 있습니까? 예를 들어 let next_n (n : int) (d : 일) : day = ..... – Bizzle
예. 'function'은 우리의 예제에서'n : int' 인자를 취하고 즉시 그것에 일치하는 간단한 구문입니다. 당신은 나의 예제를 다음과 같이 재 작성 할 수있다 :'let rec next_n d n = n with ... '과 동등 할 것이다. 또한 형식 주석은 필요하지 않습니다. OCaml이 그들을 추론 할 것이다. – rgrinberg