4

これは私の前の質問のフォローアップです。残念ながら、Chicken Schemeはデフォルトで複素数をサポートしておらず、numbersインストール可能なエッグを提供しているようです。

を介してこのeggをインストールchicken-install numbersしましたが、解釈された環境にロードできます。use;を呼び出すことでこれを行うことができます。REPLで手動で実行するか、.scmファイルをスクリプトとして実行しますcsi

たとえば、このスクリプトは完全に機能します。

(use numbers)

(begin
  (display 3+3i)
  (newline)
)

で実行する場合:

csi -s main.scm

しかし、これとまったく同じスニペットをcsc(追加のフラグがなくても)コンパイルすると、ロードしなかった場合と同じランタイムエラーが発生します(バインドされていない変数など)。コンパイルされた環境ではそうではないようですuse。マスタードをカットします。

他に注意すべき2つの点は、ドキュメントによると、、などの他のインポート関数を試しましrequire-extensionrequire-libraryが、違いはありません。numbersもう1つは、モジュールの名前を「たとえば」以外に変更するnumberssと、拡張機能を読み込めないと文句を言ってコンパイルに失敗するため、少なくともnumbersライブラリがインストールされていることを検出していることは明らかです。

誰かが、できればコンパイルされた環境で卵を使用する方法を簡単な実例を通して説明できますか?前もって感謝します!:)

4

1 に答える 1

5

メーリングリストでPeterBexが提供した有益な情報によると、ほとんどの卵は箱から出してすぐに機能します。必要なのはuseそれらだけです。

ただし、特定の卵は基本的なリーダーに拡張機能を提供し、コンパイラーにそれらについて通知する必要があります。あなたは-X旗でこれをすることができます。ドキュメントにあるように、numbersはそれらのパッケージの1つです。

スニペットのコンパイル:

csc -X numbers-syntax main.scm

完璧に動作しました。

これがお役に立てば幸いです。:)

于 2012-11-24T01:21:48.247 に答える