| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
kaniblu
가입: 2011년 3월 11일 올린 글: 3
|
올려짐: 2011년3월18일 18:05 주제: 두 함수가 서로 호출하게 만들려면 어떻게 선언하죠? |
|
|
예)
let fun1 a =
match a with
| 1 -> 2
| _ -> 1 + fun2 a;;
let fun2 a =
match a with
| 5 -> 1 + fun1 a
| _ -> 3
C 에서는 맨 처음에 let fun2 a ;; 식으로 함수의 이름과 입력 타입을 선언해주면 되는데 ocaml에서는 어떻게 하나요? |
|
| 위로 |
|
 |
김진영_
가입: 2009년 12월 9일 올린 글: 337
|
올려짐: 2011년3월18일 20:33 주제: |
|
|
먼저 Recursive 함수는 let이 아닌 let rec을 이용해서 정의하셔야 합니다.
그리고 말씀하신 Mutually Recursive 함수들은 let rec으로 정의하시되 이들을 and로 연결해 주시면 됩니다.
예를 들어 말씀하신 것처럼 fun1에서 fun2를 부르고, fun2에서 fun1을 부르도록 하고 싶으면
| 코드: | let rec fun1 x = (* body *)
and fun2 x = (* body *) |
처럼 정의해서 사용하시면 됩니다. |
|
| 위로 |
|
 |
|