ちょまど@ ITエンジニア @chomado int x = 0; int main() { printf("%d ", (x = 3) + (x = 4)); printf("%d\n", x); return 0; } これどうして 7 4 以外にもなり得るのかなぁ 2013-10-02 10:07:01
最近再び Functional Reactive Programming (FRP) について調べているのでまとまり無くメモする。まず大まかな言葉の意味については http://en.wikipedia.org/wiki/Reactive_programming から辿るのが良いと思う。簡単に言うと、FRP とはスプレッドシートの計算モデルを拡張したライブラリや言語、プログラミング技術の事を言う。Function という言葉は付いていたり付いていなかったりするけど、Reactive Programming は副作用を制限する手法なので、どの手法も多かれ少なかれ関数的に使う。 FRP はかなり大雑把に使われる言葉なので人に説明するのが難しい。だけどよく似た粒度の言葉としてはコレクションライブラリくらいが丁度良いと思う。関数プログラミングや論理プログラミングのような大げさな言葉では無い。APL
イベント駆動型のプログラムでは、エラー処理の記述が面倒になることがある。これを何とかしたい。 例えば、keyからidを引き、idからdata引くプログラムを書きたいとする。 手続き型で書くと以下のようになる: def doit(key) id = get_id(key) data = get_data(id) return data end ここで、get_id と get_data は長くブロックするので、イベント駆動型にしたいとする。 そうするとプログラムの正常系の処理は↓このようになる。 def doit(key, &callback) get_id(key) {|id| get_data(id) {|data| callback.call(data) } } # futureを返すのは良いアイディア end ここまでが前提条件。 このプログラムのエラー処理を愚直に書くと、↓このよう
$Id: readingcode.html,v 1.13 2003/12/06 00:01:08 aamine Exp $ 2006-05-02 gonzui 追加。thanks: 冨山さん 2003-12-03 ltrace と sotrace を追加 2003-12-03 ツールのところに DDD を追加。thanks: 和田さん 2003-05-27 VCG, SXT などについて追加。thanks: 梅沢さん 2003-05-27 これもすっかり忘れていた strace, ktrace, truss, etags などについて追加 2002-08-30 すっかり忘れていた ctags を追加 2002-07-07 匿名希望さんからメールでいただいた情報を追加 (動的コールグラフ) 2002-06-13 日記経由でいただいた意見をもとに文章を追加。thanks: 柳川さん、まつもとさ
実践的なデバッグ方法論(デバッグの仕方、事例研究)も強く求められている。デバッガーというツール依存のTipsではなく、ソフトウェアのデバッグというプロセスそのものの形式化である。 人々は誰に教わるでもなく自分のデバッグのスタイルを持っている。自分なりな定石を獲得している。しかしそれを明示化して人に伝えようと試みる人は少ない。伝承がまったく不可能なような議論も少なくない。 わたしはオープンソースの時代こそデバッグの方法論を広く共有できるチャンスに満ちた時代だと考えている。いくつか事例を紹介しつつ解説する。 優れたプログラマは優れたデバッグ方法論を持つ。そのデバッグ方法論をぜひ共有化したい。そのためには情報公開が要である。 デバッグとはプログラムの不具合を修正するプロセスである。テストなどによって発見された何らかの不具合を期待する結果に修正する作業である。テストとデバッグの区別が十分ついていな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く