Сохранение цитат как членов кортежа в Факторе

Я хочу сохранить цитату в качестве члена кортежа в Факторе. Но когда я пытаюсь выполнить '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
Другие вопросы по тегам