Seaside Continuations와의 작업
-
03-07-2019 - |
문제
Squeak에서 블록 클럽을 어떻게 얻습니까 (blocklosure >> callcc)?
#foo]를 쓸 때 BlockContext 인 거래는 무엇입니까?
업데이트 : Blockclosure는 주로 새로운 컴파일러의 일이라고 생각했습니다.
대신 Seaside Continuations에서 어떻게 작업합니까? 나는 문제가 있고 모든 예제는 감사 할 것입니다.
추가 업데이트 : 이것의 목적은 해변을 사용하는 것이 아니라 내 자신의 상태 추적 반복자를 굴리는 것보다 쉬운 방식으로 순회 및 기타 것들을 쓰는 것입니다.
해결책
일반적으로 Seaside를 사용하면 연속을 전혀 다룰 필요가 없습니다.
당신은 그냥 사용합니다 #call:
그리고 #answer:
구성 요소 내에서.
당신이 다른 일을하려고한다면 Continuation
해변 신청서를 작성하는 것 외에 WAComponent>>call:
사용의 예를 위해.
또는 이것을 시도하십시오. 사본 창을 엽니 다. 이제 작업 공간 에서이 모든 코드를 한 번에 선택하고 다음을 선택하십시오.
continuation := nil.
result := Continuation currentDo: [:cc |
"store the continuation, cc, somewhere for later use"
continuation := cc.
1 ].
Transcript show: result.
넌 봐야 해 1
사본 창에 표시됩니다. 이제 작업 공간에서 다음을 수행하십시오.
continuation value: 2
그리고:
continuation value: 3
당신은 당신이 전달하는 각 값을 볼 수 있어야합니다 continuation
#Value로 전달하는 각 값 : 연속의 컨텍스트가 복원되고 새 값이 할당되기 때문에 성적 증명서에 표시됩니다. result
.
잘만되면 그것은 도움이되기를 바랍니다 ...
제휴하지 않습니다 StackOverflow