5

Factor のタプルのメンバーとして引用符を保持したい。しかし、「呼び出し」を実行しようとすると、「実行時に計算された値に呼び出しを適用できません」というエラーが表示されます。関数を「インライン」としてマークしても何も起こらないことに注意してください。

サンプルコード:

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
4

1 に答える 1

5

答えは 'call(' という単語です。この単語では引用符のスタック効果を指定する必要がありますが、その結果、コンパイル時に引用符を知る必要はありません。

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
于 2010-12-15T07:36:48.363 に答える