(begin expr1 expr2 ...)
은 모든 표현식을 평가하고 평가 된 마지막 표현식을 반환한다는 것을 알고 있습니다.Scheme에서`(begin)`의 리턴 값은 무엇입니까?
나는 Chez Scheme에서 begin
과 같은 표현을 사용하지 못하도록했습니다 : (begin)
. 제 연구의 일환으로 체즈 스킴을 사용하고 있습니다. 콘솔에 쓸 때 (begin)
구문 오류가 발생하지 않고 단지 void
을 얻는 것처럼 아무것도 표시하지 않습니다.
내 질문은 무엇을 반환할까요?
(void)
을 실행하여 얻을 수있는 무효 개체라고 생각했습니다. 그러나 테스트했을 때 나는 그렇지 않다는 것을 깨달았습니다.
저는 Chez Scheme을 제가 배우는 컴파일러 과정의 일부로 공부하고 있는데, 특별한 단어 begin
을 처리 할 수있는 컴파일러의 일부를 구현해야합니다. 그래서 나는 이것이 왜 가능하고이 함수가 리턴하는지 알 필요가있다.
편집 : 나는이 주제에 대한 this link을 추가 해요
. 답변을 완전히 이해할 수 없었습니다. 또한 그는 반환 유형을 언급하지 않았습니다.
컴파일러의 일부를 구현하는 경우 언어 양식의 의미에 대한 정의는 기존 동작이 아닌 사양에서 가져와야합니다. 권리? –