게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

nested 된 같은 이름의 variable 처리.

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2007)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
김진산



가입: 2006년 9월 13일
올린 글: 45

올리기올려짐: 2007년10월10일 16:24    주제: nested 된 같은 이름의 variable 처리. 인용과 함께 답변

nested 된 같은 이름의 variable assign의 변수 유효 범위를

처리해 주어야 합니까?

----

주어진 test6.k- 를 아래와 같이 수정해 보았습니다.

코드:

let x:=0;
    proc inc(n) = x := x+n
in
   write x;
   (
   let x:=1
   in
        (inc (1); write x)
   );
   write x


현재는 메모리 삭제 기능이 없고, 모든 메모리 변화가 accumulate 됩니다.

변수의 유효범위를 생각한다면

0
1
0

이 찍혀야 하지만, 현재는

0
1
1

이 찍힙니다.

0
1
0

이 찍히도록 수정해야 하는건지요?
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문 MSN 메신저
정영범



가입: 2005년 9월 5일
올린 글: 167

올리기올려짐: 2007년10월10일 18:24    주제: 인용과 함께 답변

0
1
1
이 찍히는 게 맞는 겁니다.

코드:

let x:=1
   in
        (inc (1); write x)
   );

inc(1) 함수 내에서 쓰는 환경은 proc inc(n)가 만들어 질때의 환경으로 지금 let x:=1 을 통해 만들어진 환경하고는 다릅니다.
따라서, 환경이 다르기 때문에 write x에서 출력될 x의 값을 함수 inc 내에서는 변경 시킬 방법이 없습니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
김진산



가입: 2006년 9월 13일
올린 글: 45

올리기올려짐: 2007년10월12일 1:30    주제: 인용과 함께 답변

아! 제가 잘 못 생각했습니다.

K-- 에는 end가 없어서

코드:

let x :=1
in
   let x:=2
   in
    ...
   end

   write x
end


이런게 불가능하군요. Smile

답글은 시간에 맞게 봤는데, 다른 과목 실험 때문에 정신이 없다가

이제야 답글 답니다.


답변해 주신 조교님 감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문 MSN 메신저
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2007) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay