이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
김두남 손님
|
올려짐: 2006년6월3일 11:00 주제: 숙제5의 1번에 대해서 질문있습니다. |
|
|
함수 정의를 보면
exeval : pgm -> state -> statelist
라고 되어있는데 그럼 실행시킬때 정수 state를 넘겨야 하나요?
x := 1; (x := x+1)*
위의 것을 실행시키려면
exeval REPEAT(ASSIGN(ADD(VAL, NUM(1)))) 1
이렇게 해야 하는 건가요? 그러니까 앞의 x := 1에서 1을 두번째 인자로 넘기는 것인가요?
아니면
exeval SEQUENCE(ASSIGN(NUM(1)), REPEAT(ASSIGN(ADD(VAL, NUM(1))))) ???
???부분에 정수인 뭔가를 넣는 것인가요?
시그내처가 잘 이해가 안되서 질문합니다. |
|
위로 |
|
|
박대준
가입: 2005년 10월 7일 올린 글: 245
|
올려짐: 2006년6월4일 0:03 주제: |
|
|
김두남 씀: |
위의 것을 실행시키려면
코드: | exeval SEQUENCE(ASSIGN(NUM(1)), REPEAT(ASSIGN(ADD(VAL, NUM(1))))) <??> |
<??> 부분에 정수인 뭔가를 넣는 것인가요? |
<??> 부분에 기계상태의 초기값을 넣어주고 실행하면 됩니다.
김두남 씀: | 코드: | exeval REPEAT(ASSIGN(ADD(VAL, NUM(1)))) 1 |
이렇게 해야 하는 건가요? 그러니까 앞의 x := 1에서 1을 두번째 인자로 넘기는 것인가요? |
exeval 을 재귀적으로 정의한다면,
실행 중간에 위와 같은 식으로 함수의 재귀호출이 일어나겠지요.
하지만 우리가 처음부터 저런식으로 실행시키지는 않을 것입니다.
pgm 이라는 것은 전체 프로그램을 말하는 것이고,
state 는 초기 기계상태를 말하는 것입니다.
초기 기계상태는 0 이라고 가정하셔도 되고,
다른 값으로 하셔도 상관없습니다.
채점은 그와 관계없이 독립적으로 이루어지도록 하겠습니다. |
|
위로 |
|
|
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|