최재승
가입: 2012년 9월 10일 올린 글: 211
|
올려짐: 2015년9월12일 23:48 주제: |
|
|
안녕하세요, 프로그래밍 언어 조교 최재승입니다.
(exercise 4 답변)
| 인용: | | 이런 type formula와 expr을 주셨는데 expr 앞의 and는 ocaml syntax 로 주신건가요? |
네 그렇습니다, 'and' 는 여러 개의 type 을 한꺼번에 정의하기 위한 OCaml 문법 구문입니다. 특히 상호 의존적인(mutual) 타입들을 정의할때 유용하게 사용됩니다만, 일단은 다음과 같은 정의라고 이해하셔도 되겠습니다.
| 코드: |
type expr = NUM of int
| PLUS of expr * expr
| MINUS of expr * expr
type formula = TRUE
| FALSE
| NOT of formula
| ANDALSO of formula * formula
| ORELSE of formula * formula
| IMPLY of formula * formula
| LESS of expr * expr
|
---------------------------------------------
(exercise 5 답변)
| 인용: | 그렇다면 구현할 때 기존의 사칙연산 연산자들은 어떠한 경우에도 사용하지 말아야 하는건가요?
만약 그렇다면 SUCC 와 PRED 같은 함수를 사용하는 것은 허용이 될까요?
|
좋은 질문입니다. type nat 은 교수님께서 수업시간에 설명하신 귀납적인 정의 스타일로 자연수를 정의한 것이며, 과제의 의도는 이렇게 정의된 자연수 타입에 대해 기본적인 더하기와 곱하기 함수를 직접 정의해 보는 것입니다. 따라서 기존에 여러분이 익숙하실 + 나 * 연산자를 사용하지 말고 구현하셔야 하겠습니다. succ이나 pred 함수의 사용도 마찬가지로 금지하도록 하겠습니다.
숙제에 익숙한 입장에서는 당연하다고 생각했던 조건인데, 생각해 보니 미리 명확하게 공지드렸어야 했네요. 숙제 1 스펙 보충 글 (https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=4928)에 해당 내용도 명시하도록 하겠습니다. 혼란을 드려 죄송합니다.
조교 드림 |
|