이승중
가입: 2010년 6월 22일 올린 글: 561
|
올려짐: 2012년9월7일 13:49 주제: 숙제 1 필수 고려사항 |
|
|
0. 사용버전
숙제에서 사용할 OCaml은 3.11, 3.10(마티니)버전을 사용해주시기 바랍니다.
윈도우용은 아래 주소에서 내려받을 수 있습니다.
http://ropas.snu.ac.kr/~ta/4190.210/11/stuff/ocaml-3.11.0-win-msvc.exe
Ocaml 홈페이지에 4.0이 나온지 얼마 안되었으므로 숙제 시스템에서 예기치 못한 에러가 있을지도 모르므로 되도록이면 안정버전으로 작성하시고 제출해주세요.
1. 리스트 합
- 결과로 나온 정수리스트는 중복을 허용합니다 merge ([5;4;3], [5;4;3]) = [5;5;4;4;3;3;] 이 됩니다.
- 큰 순서대로 나열된 중복없는 정수 리스트만 입력으로 넣겠습니다.
2. 씨그마
- a 가 b보다 큰 경우는 0을 되돌려줍니다
3. 반복기
- iter 인자 페어의 첫번째 값은 항상 0보다 크거나 같도록 하겠습니다.
4. 합곱
- real은 ocaml에서 float랑 같습니다
5. 대진표
- 출력 형식은 보기와 같이 (l r) 형식으로 l과 r 사이는 한칸 띄고 괄호와 l r 사이는 띄지 않습니다. (((a b) (c d)) e)
- 리턴 타입이 string입니다. 화면에 출력하시면 안됩니다!
6. 참거짓
- IMPLY (a, b)는 a이면 b이다(->) 를 나타냅니다.
7. 자연수
8. 메트로
9. 짚-짚-나무
- 예외를 사용하기 위해 코드 앞부분에 exception NOMOVE of string 줄을 추가해주세요
- 예제에서 a, b, c, d, *, + 문자열에 ""가 생략되었습니다. 실제 코드에서는 LEAF "a" 처럼 따옴표를 추가하셔야 합니다
- goDown은 자식 노드의 맨 왼쪽 으로 갑니다. 갈 수 없을 경우 NOMOVE 예외 처리해주세요
- goLeft 함수 정의의 마지막 줄 raise NOMOVE "..." 는 두번째 줄처럼 괄호가 있어야 합니다. raise (NOMOVE "...")
10. 기타
대소문자 구별합니다. 함수 이름, 타입 정확히 맞는지 확인하고 제출해주세요
예를 들어 7번 문제의 경우 실행기에서 #use "ex7.ml";; 하신 다음 natadd;; 라고 했을 때 natadd의 타입이 nat * nat -> nat로 정확히 나와야 합니다. (nat -> nat -> nat 는 안됩니다) |
|