| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
서인석
가입: 2006년 9월 7일 올린 글: 4 위치: 서울시 봉천동
|
올려짐: 2006년9월22일 19:15 주제: Homework 1번 입력데이터에 대한 질문입니다. |
|
|
예를들어 formula 데이터로
NOT NOT NOT TRUE 같은 데이터의 경우
NOT(NOT(NOT TRUE))) 와 같이 괄호로 입력하는 건가요?
아니면 전자처럼 그냥 띄어쓰기로 구분하는 것인지요.
2친수 문제처럼 입력받는게 아닌가 싶어서요. |
|
| 위로 |
|
 |
장민석
가입: 2006년 9월 5일 올린 글: 165
|
올려짐: 2006년9월23일 11:15 주제: |
|
|
| 개인적으로 후자가 맞다고 생각하는데요. |
|
| 위로 |
|
 |
박대준
가입: 2005년 10월 7일 올린 글: 245
|
올려짐: 2006년9월24일 13:12 주제: |
|
|
타입 생성자를 함수라고 생각해봅시다.
(사실 nML에서 함수처럼 사용될 수는 없습니다만, 직관적인 이해를 돕기위해서 그렇게 가정합시다.)
그럴 경우, NOT의 타입은 "formula -> formula"가 될 것입니다.
즉, formula 타입의 값을 받아서 formula 타입의 값을 만들어 주는 함수라고 생각할 수 있죠.
그런데 nML에서 함수는 left associative operator이기 때문에 전자처럼 NOT을 사용할 경우, 다음과 같이 괄호가 내포되어 있는 효과를 냅니다.
| 코드: | | NOT NOT NOT TRUE = ((NOT NOT) NOT) TRUE |
이것은 잘못된 프로그램입니다.(즉, nML은 이 식의 값의 타입을 정할 수 없습니다.)
일반적으로 타입 생성자를 사용할 때는 후자와 같이 사용해야 합니다. |
|
| 위로 |
|
 |
|