濃縮還元オレンジニュース
「Lisp脳」の謎に迫る-Schemeプログラマの発想
この記事を読むのに必要な時間:およそ 0.5 分
オンライン書籍『Gaucheプログラミング』の中の1コンテンツです(GaucheはSchemeの処理系)。「技術動向」にて挙げたFizz-Buzz問題を題材に,手続き的なプログラミングと,LispやSchemeが得意なプログラマが行うプログラミングの手順の違いについて解説しています。
手続き的な発想でFizz-Buzz問題を解くと,
- 1から100までの数を繰り返し処理で処理する
- 繰り返しごとにその回の数を判定して条件分岐する
- 15で割り切れるなら「FizzBuzz」を,5で割り切れるなら「Buzz」を,3で割り切れるなら「Fizz」を,さもなければ数のまま印字する
という手順になり,一方Lisp(Scheme)プログラマの発想で解くと,
- とりあえず1から100までのリストを作る
- mapを使ってリストを加工して,別のリストを返す
- 結果のリストをprintする
という手順になるとのことです。手続き的な発想では「毎回特殊な処理を行いそれを繰り返す」と考え,Lisp(Scheme)プログラマは「データからデータへの変換を考えればよく,出力は後からどうにでもなる」と考える,と述べています。
プログラミングをする際に行き詰まったとき,もっと違った考え方をすることはできないか,と考えるためのヒントになりそうです。
濃縮還元オレンジニュース
- 初学者にはグラフィカルな体験を
- よく眠るために覚えておきたい17のTips
- 1週間に4時間しか働かない人の仕事術
- 経営・ITコンサルタントが語る,「採用面接時にアピールしてほしい点」
- 「Lisp脳」の謎に迫る-Schemeプログラマの発想
- Appleのヒューマンインタフェース ガイドライン
- プログラマ職に応募してくる人間のほとんどが書けない「Fizz-Buzz問題」
- Yahoo!のSteve Souders氏による「あなたのページを最速にする14の掟」
- これから15分でErlangを始めるための資料
- MySQL Conference & Expoでの,Digg,Flickr,Youtubeのセッションレポート

