我想保留一个引述为Factor中的元组成员。但是,当我尝试对其执行“调用”时,出现错误“无法将调用应用于运行时计算值”。请注意,将功能标记为“内联”不会执行任何操作。

样例代码:

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

最佳答案

答案是“ call(”一词。该词要求您指定引用的堆栈效果,但结果是在编译时不需要知道引用。

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

07-27 13:33