Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

project 6번 exception handler 에 대해서 질문이 있습니다. #216

Open
jooyany opened this issue Dec 19, 2015 · 1 comment
Open

Comments

@jooyany
Copy link

jooyany commented Dec 19, 2015

racket에서
(let ((a 3))
(with-handlers (((lambda (x) #t) (lambda (x) a))) (let ((f (lambda((raise 1)) (+ a 100)))) (f 1))))
의 결과가 103으로 나오는데,
프로젝트에서 (raise of exp_t)는 exp_t type 이고
lambda (x) 에 들어가는 것은 var_t list (LAMBDA of (var_t list * exp_t) ) 이니까
type 에 맞지 않는 입력인 것인가요??
(RAISE e)는 exp_t 자리에만 들어갈 수 있는 것이 맞나요??

@kim-yoonseung
Copy link

어디에선가 답변을 달았던 것 같은데 없네요.

말씀하신 대로, 우리의 문법에서는 lambda 에서 변수가 와야 될 곳에 raise가 올 수 없으므로 이런 경우는 생각하지 않으셔도 됩니다.

저 식을 racket에서 실행했을 때는 raise가 되지 않는 것 같군요.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants