アルゴリズムの無限大のリストを初期化しています。書くの$x = 9**9**9
は直感的ではなく、将来的にはBigIntを使いたいと思うかもしれません。1/0
エラーをスローします。
取得するための標準的な方法は何inf
ですか?
特別な文字列を使用できます"inf"
:
perl -E'say "inf" + 1'
inf
perl -E'say 1 / "inf"'
0
など。
その他の特殊文字列には+inf
、、、. もちろん、これはorプラグマでも機能します。ただし、これらのプラグマは同等の関数をエクスポートするため、ベアワードを使用できます。-inf
nan
bignum
bigint
inf
NaN
@ikegami が指摘したように、モジュールなしで真の無限大を実現する移植可能な方法はないようです。この興味深い perlmonks スレッドをざっと見てみましたが、それほど混乱することはありません。おそらく最善の解決策は、最初からパフォーマンスの低下を受け入れ、必要のない範囲でuse big{num,int,rat}
使用することです。no big{num,int,rat}
これを行うためにbigratを使用しました。-E が有効にしている機能を判断するのは困難です。
use bigrat;
use feature qw(say);
say inf + inf;
say 9**99 / -inf(); #Perl doesn't always like "-inf" by itself
use bigrat;
長い間出回っていたので、かなり移植性があるはずです。