강동옥
가입: 2009년 9월 18일 올린 글: 602
|
올려짐: 2014년11월20일 13:02 주제: type matching 관련 질문 답변 |
|
|
메일로 ocaml의 type matching에 대해 질문하신 분이 있어 게시판에 공유합니다.
인용: |
ocaml의 type matching 에 대해 질문이 있습니다.
Sm5의 obj 중 loc 타입에 대해서 let loc = int*int 로 되어있는데
이때 이 loc을 sonata 로 매칭시켜 주고 싶은데
| Sm5.Val(Sm5.L l1) -> Sonata.Val(Sonata.L l1)
이나
| Sm5.Val(Sm5.L(i1, i2)) -> Sonata.Val(Sonata.L(i1, i2)) 이런식으로 연결을 해주면 에러가 발생합니다.
어떻게 연결을 해주어야 하나요??
|
이러한 경우, 아래 코드와 같이 한 단계씩 matching을 진행해야 합니다.
코드: |
...
| Sm5.Val v ->
(match v with
|Sm5.L loc -> Sonata.Val(Sonata.L loc)
| ...
)
| ...
|
|
|