2010-12-03 27 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

相关问题