2010-12-03 15 views
5

ファクタでタプルのメンバーとして見積もりを保持したいと考えています。しかし、私はそれに '呼び出し'を実行しようとするとエラーが発生しました '実行時の計算値に呼び出しを適用することはできません'。関数を 'インライン'としてマークすることは何もしないことに注意してください。ファクタでタプルメンバーとして見積もりを保持する

サンプルコード:

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

答えて

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

関連する問題