4

私は少しばかり Scheme を学び始めたばかりで、Fixnum Days で Dorai Sitaram の Teach Yourself Scheme を使用しています。同著では次のように述べられている。

スキーム番号は、整数 (例: 42) ... または複素数 ( 2+3i ) にすることができます。

鉱山を強調します。フォームに注意してください。

これまでに教えられた原則を使用して、さまざまな種類の数を処理するいくつかの異なるプログラムを作成してみました。複素数をテストするために、この非常に単純なスニペットを作成しました。

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

これをcodepad.org (MzScheme を使用) とIdeone.com (guile を使用) でテストすると、完全に機能しました。

ここで、Chicken Scheme (私のローカル開発環境) で試してみたところ、問題なくコンパイルされましたが、実行するとクラッシュしてエラーが発生しました。

Error: unbound variable: 3+4i

  Call history:

  main.scm:2: 3+4i      <--

どうやら、バインドされていない変数エラーがありますが、私の制限されたスキームでは、それが何を意味するのかさえわかりません(まだ.)

他の誰かがこれを経験しましたか?Chicken Scheme はかなり標準に準拠していると思われるので、このような単純なものをサポートしないのは奇妙に思えます。ドキュメントをグーグルで調べましたが、具体的なものは見つかりませんでした(ただし、外部の複素数ライブラリが利用できると思うので、おそらくそれがヒントです。)

誰か提案があれば、大歓迎です。前もって感謝します!:)

4

1 に答える 1

7

Chicken Scheme で複素数を扱うには数値拡張機能をインストールする必要があると思います。これを行う:

> chicken-install numbers

それをロードすることを忘れないでください:

(use numbers)
于 2012-11-22T02:43:33.820 に答える