エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

2008-01-01から1年間の記事一覧

範囲を調べる

C++

static const int MIN = 11; static const int MAX = 20; // ... if((MIN <= n) && (n <= MAX)) { // do something } …というコードを見るたびに、もうちょっとスマートにならないものか、と感じます。たとえば…。 struct Bounds { const int min; const int…

一度は挑戦してみたい

…と最近思うんですよ。一度はプログラマとして挑戦してみたい。どこまで自分のプログラミングスキルが仕事として通用するのか。ちょっと、グチ。

それは前進か、後退か。

開発中のソフトのコードを見ていて、「これは今のうちに対策しておいた方が保守性が上がってあとあと楽になるのに」と思って、担当者に対策の提案のメールを送ってみました。 返ってきたのは次のような内容。 現状、○○の対応は、ほぼ完了しており、提案され…

環境変数の値を得る

テンポラリファイルを作るのに、テンポラリフォルダの値を得る必要に迫られて。 忘れないうちにメモメモ。 import System.Environment get_env :: [String] -> String -> IO String get_env [] d = return d get_env (s:ss) d = catch ( getEnv s ) ( \ _ ->…

行頭に引用記号をつける

引用記号に限らずですが。 例は、lsコマンドで一覧したディレクトリの内容に引用記号(>)をつける例です。 ls | ghc -e 'getContents >>= mapM_ putStrLn.map ((++) "> ").lines' 未来の自分のために解説。 getContentsで標準入力から文字列を取得 linesで文…

自作の演算子

C++

最近になってBoost::fc++というのを知りました。C++を関数型言語風に使おうというライブラリなのですが、その中に次のような記述があるのを見つけました。 x %plus% y おぉ、演算子を自作している! この発想はなかったので、ちょっと衝撃でした。 この式を普…

頭の中が手続き型

手続き型が悪いとは言わないけれど、なにもかもが手続きで記述されるとさすがに辟易する…というかびっくりするというかがっくりくるというか。条件定義をフローチャートで表した資料を目にしての感想。

職業プログラマはプログラミングが好き?

好きならよいことだと思うし、好きでないからといって非難するつもりもないけれど。好きでないとしたら、いつプログラミングの勉強をするのだろう、と思った。 仕事柄、何人ものプログラマの方と付き合いがあるけれど、自社製品を作るのでもない限り、仕事の…

配列のサイズを得るマクロ

C++

template <typename T, int N> char(&_(const T (&)[N]))[N]; #define numberof(array) sizeof(_(array)) C++とは思えないような面妖なコードになってしまいました。</typename>

関数監視ブロック(function-try-block)

C++

こんな構文があるとは知りませんでした。 プログラミング言語C++ (アスキーアジソンウェスレイシリーズ―Ascii Addison Wesley programming series)をよく読むと、確かに書いてあります。 class Foo { public: Foo try : bar_() { } catch(...) { // コンスト…

オブジェクト倶楽部2007クリスマスイベント

今さら感満載のエントリ。もうひと月も前のイベントの話になりますが。 資料が公開されまして、早速ダウンロードしてみたら。案の定、見覚えがない資料が。講演の、たぶん半分ぐらい寝てました orz。この週は仕事が忙しくて疲れがたまってたもので。眠い目こ…

素数

Haskellの実装の例でよく出てくる素数の計算。こんな感じの。 import System.Environment primes = sieve [2..] where sieve (a:as) = a:(sieve [x | x <- as, x `mod` a /= 0]) -- コマンドラインで計算する素数の数を指定。 -- 指定がないときは10個まで計…