| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
임창원
가입: 2009년 9월 14일 올린 글: 21
|
올려짐: 2009년10월30일 20:06 주제: HW4 EX2 Assign에 관한 질문 |
|
|
Seq가 왼쪽에서 오른쪽으로 차례대로 계산된다고 하셨는데요
그러면 Assign 되는 것도 차례대로 되나요?
예를 들면
Assign ("a", Const 2) 다음에
Assign ("b", Binop (Var "a", Minus, Const 1)
이런 식으로 Assignz(id, exp)에서 exp에는 이미 Assign된 문자만 사용되나요
아니면
Assign ("b", Binop (Var "a", Minus, Const 1)
Assign ("a", Const 2)
처럼 어사인의 순서가 뒤집힌 것도 계산가능해야되나요? |
|
| 위로 |
|
 |
윤용호
가입: 2008년 9월 23일 올린 글: 257
|
올려짐: 2009년10월31일 2:39 주제: re |
|
|
intp는 store와 stm을 받아 새로운 store를 만들어내는 함수입니다.
SEQ has a list of statement each of which is evaluated from left to right
라는 문구가 있습니다.
왼쪽에서 오른쪽으로 intp 하는 semantic이라고 간주하면
아직 값이 뭔지 모르는 identifier에 대해 Var을 시도하면
에러를 내는게 맞습니다.
보통의 C언어에서 선언되지 않은 변수를 어떻게 처리하는지
생각하시면 될 것 같습니다. _________________ TA |
|
| 위로 |
|
 |
임창원
가입: 2009년 9월 14일 올린 글: 21
|
올려짐: 2009년10월31일 3:42 주제: |
|
|
음... 그럼 intp 함수는
print도 하고 store타입도 만들어내야하는거죠??
print는 void형식인거 같은데 둘다 하는건 어떻게 구현하는지 힌트좀 주실분...?
아 그리고 파서?가 뭔지 알려주실분 계신가요? ㅠ
인터넷 찾아보니 먼말인지 하나도 모르겠네요 -_ -; |
|
| 위로 |
|
 |
신기정
가입: 2009년 9월 15일 올린 글: 83
|
올려짐: 2009년10월31일 10:54 주제: void가 아닌 unit을 return합니다. |
|
|
최종 리턴 값으로 unit을 리턴하지 않으면 됩니다.
예를 들어 snd (print 함수 호출, 리턴값) 이렇게 쓸 수도 있겠네요. |
|
| 위로 |
|
 |
윤용호
가입: 2008년 9월 23일 올린 글: 257
|
올려짐: 2009년10월31일 12:00 주제: Re: void가 아닌 unit을 return합니다. |
|
|
| 신기정 씀: | 최종 리턴 값으로 unit을 리턴하지 않으면 됩니다.
예를 들어 snd (print 함수 호출, 리턴값) 이렇게 쓸 수도 있겠네요. |
머리가 좋으시네요. 생각 못해본 방법인데.!
보통 리턴값이 따로 있고 출력을 하고싶은 경우
print_string "hi";1
이런식으로 sequence를 이용합니다. ocaml의 sequence는 e1;e2 에 대해 e1을 evaluate 하고 e2를 evaluate 한 후 결과값으로 e2를 선택하게 되어있습니다. e1;e2;e3;e4 연결해서 써도 e1 e2 e3 e4 순으로 eval 하고 e4의 결과가 최종 결과입니다. _________________ TA |
|
| 위로 |
|
 |
|