エンジニアのソフトウェア的愛情スマートフォン用の表示で見るエンジニアのソフトウェア的愛情または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか2007-06-07どこまでも手続き的プログラミング言語わたしには珍しくPerlの話題。仕事で、とある人が作った、ログを整形するコードを見て「おや?」と思った次第。コードは、時分秒ミリ秒をあらわす9桁の数字の列があって、それをHH:MM:SS.mmmの形に整形するというもの。気になった部分を抜き出してみるとこんな感じです。"$hour:$min:$sec.$t";ここではコードの善し悪しの判断は、また書いた人の技量とかはひとまず置いておいて。いうコードになったんだろう?としばし首をひねり。わたしだったらおそらくこんな感じにしただろうと(すぐにこのコードが思い浮かばず、2度3度試行錯誤したのは秘密です)。s/([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{3})/$1:$2:$3.$4/;2つを見比べてみて。わかったことは、前者は手続き的、後者は宣言的ということ。前者は、2桁切り出し、また2桁切り出し、さらに2桁切り出し、そのすべてと残りを整形して連結、という手順で整形を表現しています。正規表現は宣言的なので宣言的に書く方が相性がいいと思うのですが、手続き型に慣れているるがゆえに、こんなときも手続き的に書いてしまうんだろうか、と思った次第。(6)はてなブログをはじめよう!E_Mattsanさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。