Сохранение цитат как членов кортежа в Факторе
Я хочу сохранить цитату в качестве члена кортежа в Факторе. Но когда я пытаюсь выполнить 'call' на нем, я получаю сообщение об ошибке 'не может применить вызов к вычисляемому значению во время выполнения'. Обратите внимание, что пометка функций как "встроенных" ничего не делает.
Образец кода:
USING: accessors kernel ;
IN: stackru
TUPLE: quottuple quot ;
C: <quottuple> quottuple
: call-quot ( quottuple -- result )
quot>> call ; inline
: main ( -- )
[ 1 ] <quottuple>
call-quot drop ;
MAIN: main
1 ответ
Решение
Ответом является слово 'call('). Это слово требует от вас указать эффект стека цитаты, но в результате цитата не должна быть известна во время компиляции.
USING: accessors kernel ;
IN: stackru
TUPLE: quottuple quot ;
C: <quottuple> quottuple
: call-quot ( quottuple -- result )
quot>> call( -- result ) ;
: main ( -- )
[ 1 ] <quottuple>
call-quot drop ;
MAIN: main