将引用保留为因子中的元组成员

时间:2010-12-03 10:23:59

标签: factor-lang

我希望将引文保留为因子中元组的成员。但是当我尝试对它执行'call'时,我得到错误'无法将调用应用于运行时计算值'。请注意,将函数标记为“内联”不会起任何作用。

示例代码:

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

1 个答案:

答案 0 :(得分:5)

答案是'call('word。这个词要求你指定引用的堆栈效果,但结果是引号不需要在编译时知道。

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