|
|
이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
김진현
가입: 2005년 9월 20일 올린 글: 91 위치: SNUCSE OPT. lab.
|
올려짐: 2005년10월19일 20:20 주제: 함수의 인자의 이름이 그 함수의 이름과 같을 때 |
|
|
코드: | let procedure A(A) = E in ... end |
과 같은 프로그램을 생각합니다. in 과 end 사이에서는 함수A를 부릅니다.
주어진 K- 의 정의는, 함수 속내용을 실행할 때 두 개의 이름 A를 혼동합니다. 즉, 한 쪽 A는 모르게 됩니다.
A(A) 안에서 함수A와 인자A를 모두 사용하는 경우에는 문제가 됩니다.
의미정의대로 실행하다보면, 새로운 환경에서는 함수A밖에 모르게 됩니다.
(env[l/x][<x, E1, env1>/f] 가 이 의미가 맞겠지요?)
굉장히 혼란스러운 상황이 발생할 수 있을 것 같은데,
함수 정의에서 x와 f가 다른 id 이어야함을 강제하는 게 좋지 않을까요? _________________ The kingdom of heaven has been forcefully advancing, and forceful men lay hold of it. |
|
위로 |
|
|
서상원
가입: 2005년 9월 27일 올린 글: 33
|
올려짐: 2005년10월19일 22:35 주제: Re: 함수의 인자의 이름이 그 함수의 이름과 같을 때 |
|
|
김진현 씀: | A(A) 안에서 함수A와 인자A를 모두 사용하는 경우에는 문제가 됩니다.
의미정의대로 실행하다보면, 새로운 환경에서는 함수A밖에 모르게 됩니다.
(env[l/x][<x, E1, env1>/f] 가 이 의미가 맞겠지요?)
|
바인딩에도 순서가 있는건가요? 순서는 상관없겠지..라고 생각해왔는데.. |
|
위로 |
|
|
김덕환
가입: 2005년 8월 29일 올린 글: 190
|
올려짐: 2005년10월19일 23:09 주제: Re: 함수의 인자의 이름이 그 함수의 이름과 같을 때 |
|
|
김진현 씀: |
의미정의대로 실행하다보면, 새로운 환경에서는 함수A밖에 모르게 됩니다.
(env[l/x][<x, E1, env1>/f] 가 이 의미가 맞겠지요?)
|
[]의 정의에 따라 엄밀하게 따져보면, env[l / x][<x, E1, env1> / f] = ((env[l / x])[<x, E1, env1> / f])입니다.
김진현 씀: |
굉장히 혼란스러운 상황이 발생할 수 있을 것 같은데,
함수 정의에서 x와 f가 다른 id 이어야함을 강제하는 게 좋지 않을까요?
|
안전하게 간다면 그것도 좋겠습니다만, 함수 몸체에서 인자를 사용하지 않을 수도 있고 하니 꼭 그렇게 해야 할 필요는 없을 듯합니다. _________________ TheyAreAsSmartAsYouAre |
|
위로 |
|
|
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|