我希望将引文保留为因子中元组的成员。但是当我尝试对它执行'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
答案 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