| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
이상규
가입: 2026년 3월 4일 올린 글: 14 위치: 대한민국 서울
|
올려짐: 2026년6월5일 18:33 주제: [숙제 8] 구현된 simple_type_checker.ml의 안전하지 않은 작동 |
|
|
안녕하세요,
뼈대 코드로 제공된 simple_type_checker에 오류가 있어 문의 드립니다.
1. 안전하지 않습니다.
| 코드: | let val x = (1, 1) in
x = x
end
|
와 같은 경우 pair끼리는 비교할 수 없으므로 TypeError를 내야 하나, 여기서는 bool을 반환합니다.
2. 완전하지 않습니다.
같은 이름의 타입 변수를 unify하는 부분에 오류가 있어,
| 코드: | let val f = fn x => (x = x) in
f 1
end
|
의 경우에는 bool 타입으로 추론되어야 하지만,
type error: Type variable 'a5 occurs in 'a5/eq
와 같이 에러를 냅니다.
| 코드: | let rec f = fn x =>
if false then f x else x
in
f 3
end |
도 int가 되지만 type error: Type variable 'a4 occurs in 'a4 에러를 냅니다.
3. 한편,
에서는 TypeError 대신 "Indeterminate"라는 다른 예외를 반환하는 문제도 있습니다. _________________ 감사합니다.
이상규 올림 |
|
| 위로 |
|
 |
안중원 Site Admin
가입: 2023년 3월 13일 올린 글: 97
|
올려짐: 2026년6월6일 11:00 주제: |
|
|
안녕하세요, 프로그래밍 언어 조교 안중원입니다.
우선 오류에 대해 제보해주신 점 감사합니다.
다만 simple_type_checker.ml에 오류가 있더라도 숙제 수행에는 문제가 없기에, 뼈대 코드 수정은 없을 예정입니다.
simple_type_checker를 제공해드린 것은 숙제 7에서 어려움을 느끼셨더라도 숙제 8을 원활하게 수행할 수 있는 출발선을 마련해드리기 위함입니다.
해당 코드를 그대로 사용하기보다는, 숙제 8의 코드 구조나 대략적인 알고리즘을 설계할 때에 참고자료로 활용하시기 바랍니다.
감사합니다. _________________ TA 안중원
e-mail: jwahn@ropas.snu.ac.kr |
|
| 위로 |
|
 |
안중원 Site Admin
가입: 2023년 3월 13일 올린 글: 97
|
올려짐: 2026년6월7일 15:00 주제: |
|
|
안녕하세요,
해당 오류에 대해서는 수정하여 뼈대코드를 다시 올리기로 결정하였습니다.
발견된 오류들에 대해서는 안전한 타입검사가 이루어지도록 시정하되, 기존에 업로드한 뼈대코드를 그대로 쓰더라도 숙제 수행 자체에는 영향이 없도록 신경쓸 것입니다.
혼란을 드린 점 사과드립니다.
감사합니다. _________________ TA 안중원
e-mail: jwahn@ropas.snu.ac.kr |
|
| 위로 |
|
 |
|