2010-12-03 2 views
5

팩터의 튜플 멤버로 견적을 보관하고 싶습니다. 그러나 '호출'을 실행하려고하면 '런타임 계산 값에 호출을 적용 할 수 없습니다'오류가 발생합니다. 함수를 '인라인'으로 표시하면 아무 것도 수행하지 않습니다.팩터의 튜플 멤버로 견적 유지하기

샘플 코드 :.

USING: accessors kernel ; 
IN: stackoverflow 

TUPLE: quottuple quot ; 
C: <quottuple> quottuple 

: call-quot (quottuple -- result) 
    quot>> call ; inline 

: main (--) 
    [ 1 ] <quottuple> 
    call-quot drop ; 

MAIN: main 
+0

당신은 당신이 인용을 실행하려고하는 방법에 대한 몇 가지 코드를 보여줄 수 있을까요? – stonemetal

답변

5

대답은 그 단어가 인용의 스택 효과를 지정하도록 요구하는 '콜 ('단어이지만, 결과적으로 인용 알려진 할 필요가 없습니다 컴파일시.

USING: accessors kernel ; 
IN: stackoverflow 

TUPLE: quottuple quot ; 
C: <quottuple> quottuple 

: call-quot (quottuple -- result) 
    quot>> call(-- result) ; 

: main (--) 
    [ 1 ] <quottuple> 
    call-quot drop ; 

MAIN: main 
+0

당신은 스택 효과를 컴파일 타임에 알려진되지 않을 수 있습니다 인용의 스택 효과를 얻기 위해'infer'을 사용할 수 있습니다 . – cat