이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
홍선기
가입: 2014년 9월 29일 올린 글: 11
|
올려짐: 2014년9월29일 22:27 주제: 함수 선언 방법 질문드립니다. |
|
|
만약 rec 함수 A에서 다른 rec함수 B가 쓰인다고 가정할때
rec함수 B에서도 다시 함수 A가 쓰인다면 함수 선언을 어떻게 해야 하나요?
함수를 let으로 따로 따로 선언시에 Unbound 오류가 뜹니다. |
|
위로 |
|
 |
황재동
가입: 2014년 9월 2일 올린 글: 80
|
올려짐: 2014년9월29일 23:07 주제: |
|
|
let 대신 and 라고써보세요 |
|
위로 |
|
 |
강동옥
가입: 2009년 9월 18일 올린 글: 602
|
올려짐: 2014년9월29일 23:50 주제: |
|
|
네, and 라는 문법 요소를 사용하시면 되겠습니다. 2^n 을 계산하는 함수를 억지로 and 문법을 사용하여 구현한 예제입니다. (n<0 인 경우는 처리하지 않았습니다)
코드: |
let rec power1 n =
if n <= 0 then 1 else (if n mod 2 == 1 then 2 * (power1 (n/2)) * (power2 (n/2)) else (power1 (n/2)) * (power2 (n/2)))
and power2 n =
if n <= 0 then 1 else (if n mod 2 == 1 then 2 * (power2 (n/2)) * (power1 (n/2)) else (power2 (n/2)) * (power1 (n/2)))
|
|
|
위로 |
|
 |
|