history

青木日記 RSS

<前の日 | この月 | 次の日>

2003-09-10

Lisp と言語の読みやすさ

「Lispのわかりやすさ」from Matz日記
http://www.rubyist.net/~matz/?date=20030909#p01

この話題に関連していいフレーズを思いついたんですが、 微妙に話がずれてるのでここに書いておきます。

  • Lisp は他のプログラミング言語よりも直接的に脳内イメージを表現できる。 しかし脳内イメージはプログラマごとに違う。

それゆえ、Lisp は強力で、簡潔に書ける。 しかし、読みやすいとは限らない。 のではないかと思うのです。

e

tmpdir.rb と tempfile.rb の「e」の違いが気になって気になってしかたがない。

.zsh-history

~ % wc .zsh-history
 153258  490715 4606705 .zsh-history

4MB、15 万行ですか。我ながら凄い量だ。

Ruby / max_by, min_by

こういう感じの働きをする Enumerable#max_by, min_by が欲しくなった。

module Enumerable
  def max_by
    max {|a,b| yield(a) <=> yield(b) }
  end
 
  def min_by
    min {|a,b| yield(a) <=> yield(b) }
  end
end

ちなみに Haskell には Data.List.maximumBy, minimumBy があるが、 これは Ruby のブロック付き max/min と同じような領域をカバーする。

~ % href maximumBy
Data.List,maximumBy
maximumBy :: (a -> a -> Ordering) -> [a] -> a
maximumBy f xs
 
    リスト xs の要素の中で最大のものを返す。
    大小の比較に f を使う。
 
    see also: maximum, minimumBy, compare
 
        maximumBy (compare) [1,2,3,4] = maximum [1,2,3,4] = 4
 

最近の萌えましーん

もうパソコンなんてどうでもよくなってきた最近ですが、 G5 2GHz dual はちょっと欲しくなりました。なんかイイよアレ。 いま 50 万あったら AlphaServer ES40 とどっちを買うかかなり悩むな。

そう、ES40 が 25 万で売ってるんですよ。 ES40……Alpha 21264 500MHz × 4、メモリ 2GB に冗長電源三つ、 匡体の大きさは巨大冷蔵庫並。強いて欠点を挙げるならば、 電気代が正視できない額になるであろうことと、 Compaq 時代のマシンなので [d|i|g|i|t|a|l] ロゴが付いてないことか。

ところで「ましーん」という響きで Love Machine を思い出した。 懐かしすぎる。

本日のツッコミ(全2件) [ツッコミを入れる]
なかだ (2003-09-10 22:38)

collect{|x|[yield(x), x]}.max[1]
ならyieldが半分で済むかも。

あおき (2003-09-10 22:54)

それだと empty? のときに落ちるですよ。
かと言って to_a 付け始めたりすると美しくないし。

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS