1

http://www.solve-et-coagula.com/As3Lisp.htmlを使用して、基本的な階乗関数を実行しています。

結果を指数表記で出力していますが、完全な「展開された」数値を表示したいと思います。

(defun factorial (n)
 (cond ((= n 0) 1)
       (t (* n (factorial (- n 1))))))

それから

(factorial 100)

9.33262154439441e+157

formatさまざまなコマンドを試しまし(format t "~D" (factorial 100))たが、勝者のように見えますが、機能しません。設定も試してみ(setq *READ-DEFAULT-FLOAT-FORMAT* 'double-float)ましたが、それでもうまくいきません。

私のコマンドの問題ですか、それとも環境ですか?

4

2 に答える 2

1

別の環境でうまくいくことがわかりました。

Gnu Common Lisp (http://www.cs.utexas.edu/~novak/gclwin.html) を使用しましたが、期待どおりに答えが返ってきました。

于 2012-12-11T12:03:54.767 に答える
1

実装がsrfi-28 (フォーマット) をサポートしている場合、~F でうまくいくと思います。チキンスキームについて:

#;1> (use format)
; loading /usr/local/lib/chicken/6/format.import.so ...
; loading /usr/local/lib/chicken/6/chicken.import.so ...
; loading /usr/local/lib/chicken/6/srfi-13.import.so ...
; loading /usr/local/lib/chicken/6/data-structures.import.so ...
; loading /usr/local/lib/chicken/6/ports.import.so ...
; loading /usr/local/lib/chicken/6/extras.import.so ...
; loading /usr/local/lib/chicken/6/format.so ...
#;2> (format #t "~F~%" (factorial 100))
93326215443944100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0
#t

フォーマットの卵の仕様を確認してください

乾杯。

于 2012-12-12T08:54:01.040 に答える