|
|
이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
김지훈
가입: 2006년 9월 12일 올린 글: 11
|
올려짐: 2006년11월24일 19:07 주제: [질문] EQ / LET에서요~ |
|
|
EQ
m.pdf 에는 n s b l 에 대해서만 정의되어 있는데요
pair와 closure에 대해서 equality operation이 들어오면
exception이 나게 해야 할까요??
LET
LET (REC (f, e1), e2)
경우에 m.pdf 에는 e1을 eval 했을 때 Fun(x,e) 가 나오는 경우에만 정의되어 있는데요 e1을 eval 했을 때 RecFun(g, x, e)가 나오는 경우도 있지 않을까요?
그냥 f로 x,e 를 새로 바인딩 시켜주면 될까요?? |
|
위로 |
|
|
신종호
가입: 2006년 9월 10일 올린 글: 16
|
올려짐: 2006년11월25일 23:13 주제: |
|
|
eq랑 write은 정말 발목은 잡네요; |
|
위로 |
|
|
박대준
가입: 2005년 10월 7일 올린 글: 245
|
올려짐: 2006년11월27일 10:45 주제: |
|
|
김지훈 씀: | EQ
m.pdf 에는 n s b l 에 대해서만 정의되어 있는데요
pair와 closure에 대해서 equality operation이 들어오면
exception이 나게 해야 할까요?? |
정의 문서 그대로, pair와 closure에 대해서는 의미가 정의되어있지 않기 때문에,
인터프리터와 타입체커가 오류를 내는 것이 맞습니다.
김지훈 씀: | LET
LET (REC (f, e1), e2)
경우에 m.pdf 에는 e1을 eval 했을 때 Fun(x,e) 가 나오는 경우에만 정의되어 있는데요 e1을 eval 했을 때 RecFun(g, x, e)가 나오는 경우도 있지 않을까요?
그냥 f로 x,e 를 새로 바인딩 시켜주면 될까요?? |
위와 같은 경우 역시, 의미가 정의되어 있지 않습니다.
즉, 그러한 프로그램은 우리의 M으로는 만들 수 없는 프로그램입니다.
오류를 내도록 구현하시기 바랍니다.
참고로, 위와 같은 경우, 즉 아래와 같은 코드는 허용되지 않습니다.
코드: | let rec f =
let rec g = fn y => e2
in
fn x => e1
end
in
e3
end |
위와 같은 코드의 의미를 묘사하기 위해서는 다음과 같이 코딩하셔야 합니다.
코드: | let rec f =
fn x =>
let rec g = fn y => e1
in
e2
end
in
e3
end
|
|
|
위로 |
|
|
김지훈 손님
|
올려짐: 2006년11월27일 16:28 주제: |
|
|
넵~
아, 그리고 LET REC 의 경우 파서에서 syntax error를 내 주네요^^; |
|
위로 |
|
|
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|