という割には、BignumをNativeにサポートしていたりするのだから面白い。

Matzにっき(2006-05-04)
otsuneさんのところから
ry)
私がオイラーの等式を最初に見たのは 大学3年のとき石塚さんの『オブジェクト指向入門』の脚注でだったし、 その時だって「ふーん」ていどで感動はしていない。
いや、すいません、自慢しているようで、結局、自分の馬鹿をさらしてるだけですね。

というわけで、MatzさんのMath Complexをチェック:)

e2ipi.rb
#!/usr/bin/env ruby
include Math      # you need no quote here
require 'complex' # but you do.  frankly I hate that.
i = Complex(0,1); # ironically i is not predefined
print "pi         = ", PI,        "\n"
print "e          = ", E,         "\n"
print "e**(i*pi)  = ", E**(i*PI), "\n"
print "exp(i*pi)  = ", exp(i*PI), "\n"
print "log(-1)    = ", log(-1),   "\n"
実行結果:
pi         = 3.14159265358979
e          = 2.71828182845905
e**(i*pi)  = -1.0+1.22460635382238e-16i
exp(i*pi)  = -1.0+1.22460635382238e-16i
log(-1)    = 3.14159265358979i

eもpiも定義済みなのにiが定義してないのがちょっと面白い。

でも、なんでincludeはbarewordでOKなのにrequireはquoteがいるのかというのも、Perlishな人々にはちょっと引っかかったりして。

そのperlの方はこんな。

e2ipi.pl
#!/usr/bin/env perl
use strict;
use warnings;
use Math::Complex;
use constant e => exp(1);  # e is not predefined while pi is
                           # Readonly is not used because it is not in core.
print "pi         = ", pi,        "\n";
print "e          = ", e,         "\n";
print "e**(i*pi)  = ", e**(i*pi), "\n";
print "exp(i*pi)  = ", exp(i*pi), "\n";
print "log(-1)    = ", log(-1),   "\n";
実行結果:
pi         = 3.14159265358979
e          = 2.71828182845905
e**(i*pi)  = -1+1.22460635382238e-16i
exp(i*pi)  = [1,pi]
log(-1)    = 3.14159265358979i

[1,pi]に注目。これ、Math::Complexの極形式表現で、実は周期関数であることをこうして表現しているわけです。ちょっと感動。

Pythonやその他のLLに関しては、他の人によるdemoきぼんぬ。

「ふーん」を「へえー」に変えたい人は→をクリック。かなり売れているところから見て、以外とそういう方は多いかも。


Dan the Mathphilia