TAKESAKO
トーク編集
RubyやPythonは標準で多倍長整数Bignumが扱えるそうです。 「メモリの許す限り、無限の整数が扱える!?」とのこと。 本当にそうなのか、ひたすら1+1をして検証してみました。
ruby -e "print eval('1+'100+'1')" ruby -e "print eval('1+'10000+'1')" python -c "print eval('1+'10000+'1')" python -c "print eval('1+'40000+'1')" perl -e "print eval(('1+'x 40000).'1')" perl -e "print eval(('1+'x 40000_000).'1')" perl -e "print eval(('1+'x 100000000).'1')"
【結論】 PerlはRubyよりも1万倍多く 1+1 ができる。 PythonはRubyの4倍強くて、Perlはさらにその1000倍以上強い。 100MBの1+1のプログラムが動くPerlは最強。
【メモ】 僕のRubyでは1+1が実行できない!
ruby 1.9.2p180 (2011-02-18) [i386-mingw32] > ruby -e "print eval('1+'*8135+'1')"
Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on win32 > python -c "print eval('1+'*31433+'1')"
Pythonでもクラッシュする!
> perl -e "print eval(('1+'x 30_000_000).'1')" 30000001
Perlだと30MBでも大丈夫!
公式タグ、ハッシュタグは yapcasia を使用してください。ブックマーク、ブログ、写真等のタグ、そしてTwitterでご使用いただけると情報共有に便利です。年度を特定したい場合は yapcasia2012 でも結構ですが、yapcasiaと併用してくださると助かります。
また、IRCは freenode上の #yapcasia-en (英語)と #yapcasia-ja です。