4

c-lambdaの背後にC関数があります。これは、select(2)呼び出しでグラブを実行し、それが何をしたか、およびエラー状態が発生したかどうかを示すために返すスキームシンボルを決定する必要があります。名前付きシンボルをCから___SCMOBJ(またはより適切なもの)として取得する方法は、ドキュメントでは説明されておらず、wikiは倒れたようです。また、gambit.hから、この目的のためのマクロがあるかどうかはすぐにはわかりません。

これは箱から出して可能ですか?現時点での私の回避策は、関数への引数としてリターナブルシンボルを渡すことですが、リターンできるようにしたいシンボルのセットが多いと、非常にすぐに扱いにくくなります。

4

1 に答える 1

0

私はgambit-cメーリングリストでこの質問をしました。3つの主な応答がありました:

  1. 文字列->シンボルをCにエクスポート
  2. Cを呼び出す前にルックアップテーブルを作成する
  3. ギャンビットをアップグレードする

Debian Squeezeのギャンビットと互換性を持ちたいので、今のところ(1)を使用しますが、パフォーマンスへの影響はまだ大きくないと思います。

于 2013-02-22T17:05:24.173 に答える