というわけで、試行錯誤しながら階乗を考えてみた。
/func {dup 1 eq {1 mul} {dup 1 sub func mul} ifelse} def実行結果。
GS> 10 func ==どうやら再帰的なオペレータの定義ができるらしい。はじめは、ふつうに for を使って解こうとしたんだけど、わかりませんでした。
3628800
GS> 20 func ==
2.43290202e+18
GS> 100 func ==
inf.0
ところで Emacs の ps-mode は GS のビューワーと連動して出力結果がリアルタイムで見られてすごい。便利すぎ。ただしお絵描きを始めると日付が変わるようだ。
0 件のコメント:
コメントを投稿