2010-12-03 56 views
5

我想保留引號作爲元素中的元組成員。但是當我嘗試對它執行「調用」時,出現錯誤「無法將調用應用到運行時計算值」。請注意,將這些函數標記爲「inline」不會做任何事情。保留引號作爲元素中的元組成員

示例代碼:

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 2010-12-14 15:23:58

回答

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 2016-04-09 02:08:26

相關問題