カリー化って厳密に言うとHaskellで言うカリー化と他の言語で言うカリー化とは、すこしズレてるように思ったことがある。忘れちゃったけど。
スリープソートは並行実行の説明をするときに、「スリープソートというのがありまして...」みたいに、つかみとして使えるかと
Haskell Brooks Curryさんは、とりあえず3つの言語に名前を残している。 Haskell Brook Curry さらにカリー化とかカリー=ハワード同型対応などなど、「名前残しすぎ」問題。
ドーナツ
僕が3大ソートって勝手に呼んでるのが マージ クイック ヒープ だ。 どれも「分けて」から「組み立てる」というやりかたでO(n log n)を実現してるのだけど、どの時点で「比較と並べ替え」をしているかで見ると面白い。 マージソートは「分ける」ときはそのままで「組み立てのときに比較と並び替え」をしている。 クイックソートは「分けながら比較と並び替え」をしていて「組み立てる」ときにはそのままにしている。 でヒープソートは「分けるときと組み立てるときの両方」で「比較と並び替え」をしている。
ネタ枠としてはボゴソートとスリープソートあたりを覚えておけばいいかな。
ソートは「ひとつだけ覚えておく」ならマージソートがいい。クイックソートみたいな落とし穴もない優等生。
ソートは僕はヒープソートが好きなのだけど、でも時代はヒープソートを求めていないという。 アルゴリズム的にはすごい「美しい」。
「Haskellのクイックソート」警察です。
Jamiはpeer-to-peerなのだけど、接続したい相手を指定はどうするのかな。 固定IPが必要とかだとハードルが高い。 その部分だけ中央サーバがあるのかもしれない。 つまり、中央サーバにアカウントとIPアドレスを登録しておいて、接続したい側はそのサーバに問い合わせる感じか。 でIPアドレスがわかればあとはpeer-to-peerで接続できると思う。