이재호 Site Admin
가입: 2022년 3월 6일 올린 글: 209
|
올려짐: 2024년3월12일 23:50 주제: |
|
|
질문에 대해서 답변 및 부연 설명 드립니다.
1. | 코드: | | crazy3val ZERO(ONE(MTWO NIL)) | 와 | 코드: | | crazy3val (ZERO(ONE(MTWO NIL))) | 의 차이:
이해하신 것이 맞습니다.
부연하자면, OCaml (및 일반적인 설정에서) 함수의 사용은 왼쪽 방향성(left associative)을 가집니다. 따라서, 첫 식은 | 코드: | | ((crazy3val ZERO)(ONE(MTWO NIL))) | 와 같은 식이며, 두 번째 식은 | 코드: | | (crazy3val (ZERO(ONE(MTWO NIL)))) | 와 같습니다.
그렇기에, 튜토리얼에서 지나가듯 언급하였지만
| 코드: | | crazy3val ZERO(ONE(MTWO NIL)) | 이 아니라
| 코드: | | crazy3val ZERO (ONE (MTWO NIL)) | 와 같이 인자들을 띄어쓰기로 구분해 작성하시는 습관을 들이는 것을 추천드립니다.
공지하였듯이 ocamlformat을 사용하면 자동으로 해당 방식으로 코드가 정돈될 것입니다.
2. `let num = ...`이 되는 것은 1로 답변이 되었으리라 생각합니다. 참고로, 튜토리얼에서 말씀드렸지만 `;;`은 utop과 같은 상호작용 실행기에서만 사용하는 문법이니 .ml 파일에서는 사용하실 필요가 없습니다.
3. "혹시 채점 시에..." -> 질문을 읽어보니 앞서 1에서 설명드린 개념을 혼동하신 것 같습니다. 과제에 주어진 타입대로 문제를 푸시면 됩니다.
추가적으로 궁금하신 내용 있으면 자유롭게 질문주세요! |
|