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

Ran*_*oet 5 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
Run Code Online (Sandbox Code Playgroud)

Ran*_*oet 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
Run Code Online (Sandbox Code Playgroud)