デフォルト引数が評価されるタイミング
デフォルト引数が評価されるタイミングが気になったので、ちょっと実行してみました。
c++のコード
#include <iostream> #include <cstdlib> #include <ctime> void func(int i = rand()) { std::cout << i << std::endl; } int main(void) { srand(time(NULL)); func(); func(); func(); return 0; }
c++の結果
247111784 168458104 1083831553
rubyのコード
def func(i = rand()) print "#{i}\n" end func func func
rubyの結果
0.418264634981435 0.894746224876965 0.805637328790286
pythonのコード
import random def func(i = random.random()): print i func() func() func()
pythonの結果
0.542012394526 0.542012394526 0.542012394526
SBCL 1.0.46リリース
Steel Bank Common Lispのバージョン1.0.46がリリースされました。
New in version 1.0.46 - Steel Bank Common Lisp
Getting Started - Steel Bank Common Lispを見ながら、ubuntu 10.10 64bit版でビルドしてみます。
wget http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.46/sbcl-1.0.46-source.tar.bz2 tar xjf sbcl-1.0.46-source.tar.bz2 cd sbcl-1.0.46 bash make.sh
手元のPhenom 9150e機だと約10分で完了します。そしてテスト。
cd tests bash run-tests.sh
10分程で完了し失敗しました…
Finished running tests. Status: Failure: compiler.pure.lisp / BUG-654289 Expected failure: packages.impure.lisp / USE-PACKAGE-CONFLICT-SET Expected failure: packages.impure.lisp / IMPORT-SINGLE-CONFLICT test failed, expected 104 return code, got 1
2010年を振り返って
今年は月に1度くらいしか書けませんでした。読書もあまり進まず…
言語設計者たちが考えること
言語設計者たちが考えること (THEORY/IN/PRACTICE)
- 作者: Federico Biancuzzi,Shane Warden,伊藤真浩,頃末和義,佐藤嘉一,鈴木幸敏,村上雅章
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/09/27
- メディア: 大型本
- 購入: 11人 クリック: 411回
- この商品を含むブログ (52件) を見る
様々な言語の設計者に対するインタビュー集です。
各人の意識している問題点や、それに対する解決策としての言語構造等、考え方の違いが比較できるお勧めの本です。
CUDA Toolkit 3.2リリース
CUDA Toolkit 3.2 Downloads | NVIDIA Developer
CUDA Toolkit 3.2がリリースされました。気になるものとしてはH.264 encode/decode libraryでしょうか。
プログラミング作法?
- 作者: ブライアンカーニハン,ロブパイク,Brian Kernighan,Rob Pike,福崎俊博
- 出版社/メーカー: アスキー
- 発売日: 2000/11
- メディア: 単行本
- 購入: 58人 クリック: 1,152回
- この商品を含むブログ (209件) を見る
久しぶりに読み直して見ましたが、依然としてかなり好きな本です。(プログラミング作法という邦題が良い訳なのか疑問ですが…)
内容的には、細かいネーミングのルールから、設計、テスト、デバッグ等々ソフトウェア開発全般を扱っています。一応Cに限定せずに書かれていますが、基本的にはCプログラマにお勧めです。