Ocaml 질문드려요 !
글쓴이: sky0189 / 작성시간: 토, 2014/10/04 - 2:49오후
let sigma_tail_rec term a next b = let rec iter a result = if <A> then <B> else iter <C> <D> in iter a 0
라는 코드가 있습니다.
시그마 함수를 tail recursion 으로 구현하는 코드이구요.
질문이 2가지가 있는데요,
rec iter 함수 안에서는 b를 호출 할 수 없는것인지......
그러면 어떻게 rec 안에서 함수의 조건을 주는건지 감이 오지 않네요..
그리고 하나더는
제일 마지막줄의 in iter a 0 에서의 의미는 무엇인가요 ?
Forums:
in iter a 0을 넣었을 때의 값이 (term
in iter a 0을 넣었을 때의 값이
(term a) + (term (next a)) + (term (next (next a))) + ... 이 되어, 본래 sigma로 정의된 결과값과 같도록 만들어야 합니다.
in iter a 0은
lt rec iter a result = ... 로 정의된 부분을 볼 때,
result 값이 0에서 시작하여, 제가 이 댓글 두번째 줄에 적은 식의 요소를 하나하나 더해간다고 생각해보시면 도움이 될 것 같습니다.
추가로, sigma_tail_rec 라는 함수의
추가로, sigma_tail_rec 라는 함수의 내부함수인 iter 함수에서는
sigma_tail_rec의 요소인 term, a, next, b 모두를 호출 가능합니다.
댓글 달기