문제

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.

잘만되면 그것은 도움이되기를 바랍니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top