Scheme에 관해서이 문장을 읽었습니다.스키마의 "스택". 특수하게 만드는 것은 무엇입니까?
"활성화 스택에 해당하는 Scheme은 부분적으로 연속 된 체인 (일시 중지 레코드)입니다."
저는 이것이 실제로 의미하는 바에 대해 약간 혼란 스럽습니다. C의 스택과 다른 점은 무엇입니까?
Scheme에 관해서이 문장을 읽었습니다.스키마의 "스택". 특수하게 만드는 것은 무엇입니까?
"활성화 스택에 해당하는 Scheme은 부분적으로 연속 된 체인 (일시 중지 레코드)입니다."
저는 이것이 실제로 의미하는 바에 대해 약간 혼란 스럽습니다. C의 스택과 다른 점은 무엇입니까?
C에서 스택은 중단했을 때의 위치를 알려주는 일련의 메모리 포인터 일뿐입니다.
Scheme에서 모든 것이 목록이므로 실제로 목록을 이동하는 것입니다. 프로그램을 스택처럼 볼 수 있습니다.
기본 차이점은 Scheme (다른 것들 중에서)에서 스택의 현재 상태는 첫 번째 클래스 객체가 될 수 있다는 것입니다. 전체 스택 상태를 보유하는 변수를 만들 수 있습니다 (예를 들어). 그런 다음 해당 연속을 사용하여 동일한 시작 상태에서 다른 함수를 호출하거나 일반 목록처럼 "스택"의 (Scheme보기)를 볼 수 있습니다.
Scheme은 call-with-current-continuation 구조를 지원합니다 (R5RS에서 이에 대해 읽음). 구문을 사용하여 이전 연속으로 돌아갈 수 있습니다. 이것은 활성화 레코드가 더 이상 스택을 형성하지 않음을 의미합니다. 대신 활성화 레코드는 트리를 형성합니다 (스택은 특수한 형태의 트리입니다). 계속성에 대한 느낌을 얻으려면 추천 할 수 있습니다
Daniel P. Friedman. "Continuations의 응용 : 초대 된 자습서". 1988 프로그래밍 언어 원칙 (POPL88). http://library.readscheme.org/page6.html
: 당신이 연속 요청에 푹 얻을 경우 1월 1988 http://www.cs.indiana.edu/hyplan/dfried/appcont.pdf, 당신은 여기에 흥미로운 논문을 많이 찾을 수 있습니다