2010-12-03 2 views
5

Я хочу сохранить цитату в качестве члена кортежа в Factor. Но когда я пытаюсь выполнить «вызов» на нем, я получаю сообщение об ошибке «не может применить вызов к вычисленному значению времени выполнения». Обратите внимание, что обозначение функций как «inline» ничего не делает.Сохранение котировок как членов кортежа в Факторе

Пример кода:

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

не могли бы вы показать код, как вы пытаетесь выполнить котировку? – stonemetal 2010-12-14 15:23:58

ответ

5

Ответ является «вызов (» слово Это слово требует указания стека эффект котировки, но в результате котировки не должны быть известны. во время компиляции.

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 
+0

вы можете использовать `infer`, чтобы получить стек эффект котировки которого стек эффект не может быть известно во время компиляции , – cat 2016-04-09 02:08:26

Смежные вопросы