게시판 인덱스

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

IF 가 return 하는 것은?

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



가입: 2006년 9월 4일
올린 글: 25

올리기올려짐: 2006년10월30일 21:58    주제: IF 가 return 하는 것은? 인용과 함께 답변

K-의 정의에서는 물론 unit입니다만,

SM5 에서는 if e1 then e2 else e3 이라면, t / f 시 각각 e2의 결과값 / e3의 결과값을 return할 수 있게 되어있군요.

그렇게 만들고 싶은 생각이 무럭무럭 듭니다만...

역시 unit을 return해야겠죠? K-와 equivalent 하게 하려면.. ㅜㅜ
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
장민석



가입: 2006년 9월 5일
올린 글: 165

올리기올려짐: 2006년10월30일 22:53    주제: 인용과 함께 답변

어떻게 하든 구현 상 큰 차이는 없는 거 같은데요. 물론 unit값 처리를 해줬다는 전제에서 말이죠. unit이야 if뿐 아니라 다른 커맨드에서도 뱉어내니까요.

제가 방금 수현님 글을 보고 아차 싶어서 수정했거든요(정말 고맙습니다).;; if만 빼먹었다는...
위로
사용자 정보 보기 비밀 메시지 보내기
송수현



가입: 2006년 9월 4일
올린 글: 25

올리기올려짐: 2006년10월30일 22:55    주제: 인용과 함께 답변

음..

밑에서 나왔던 것처럼, if가 unit을 리턴하지 않는다면

if (write x) = (if ...) then a else b

에서 a가 실행되어야 하는데 b가 실행되지 않나요?

그렇다면 k-와는 결과값도 다른 것이 아닌지..
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
장민석



가입: 2006년 9월 5일
올린 글: 165

올리기올려짐: 2006년10월30일 22:58    주제: 인용과 함께 답변

그렇죠.. 근데 그건 unit값이 야기하는 일반적인 문제이지 if에 국한된 문제는 아니라는 말씀이죠. 그러니까 if가 unit을 안뱉어내더라도 assignv나 write 등도 있다는 거죠.

제가 수현님 말씀을 제대로 이해한 것이 맞는지 모르겠습니다.



아...if가 unit을 뱉어내면 구현이 더 복잡해진다는 뜻으로 제가 오해했나보네요. 단지 구현의 정확성을 위한 질문이었군요.
위로
사용자 정보 보기 비밀 메시지 보내기
송수현



가입: 2006년 9월 4일
올린 글: 25

올리기올려짐: 2006년10월30일 23:07    주제: 인용과 함께 답변

네;

제 질문은
x := if bool then 3 else 2 end
bool = true, x = 3
bool = false, x = 2
등을 sm5에서는 쓸 수 있다는 희망적인 것이었지만
(예제로도 통과를 해 봤습니다)

역시 포기하기로 했습니다!

일단 올려놓고 내일 시험공부를 하러 가봐야겠네요;
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
박대준



가입: 2005년 10월 7일
올린 글: 245

올리기올려짐: 2006년10월31일 0:19    주제: 인용과 함께 답변

네, if 문은 K-의 정의처럼, unit을 리턴하도록 하여야 합니다.

코드:
if (write x) = (if ...) then a else b

위 식의 값은 a의 값입니다.
b는 절대 실행되지 않습니다.

코드:
x := if bool then 3 else 2 end

위 식에서 x의 값은 unit입니다.

인용:
SM5 에서는 if e1 then e2 else e3 이라면, t / f 시 각각 e2의 결과값 / e3의 결과값을 return할 수 있게 되어있군요.

sm5 정의 어디에도 위와 같은 의미는 찾을 수 없습니다.
sm5 는 jtr(c1,c2)에 대해서만 정의되어 있습니다.
jtr(c1,c2)과 if문은 별개의 것입니다.
비슷하게 생긴 sm5명령어와 k-의 식들을 일대일 매치시키지 마시고, 좀 더 넓은 범위에서 생각해보시면,
unit 값을 리턴하도록 처리하는 것이 그다지 어려운 일이 아닐 것입니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2006) 시간대: GMT + 9 시간(한국)
페이지 11

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


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