トップ «前の日記(2006-09-18) 最新 次の日記(2006-09-20)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|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|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ToDo:


2006-09-19

_ ちょうど10歳下が

Haskellで一応使えるFORTH処理系を書いてしまったという事実

(01:17)

_ webにある場合

-dtypesの出力も置いておけば JSで綺麗に表示させるとかほげほげ。

(03:26)

_ メモ

http://pc8.2ch.net/test/read.cgi/tech/1158259643/47

obj method(arg1, arg2)

みたいな時の obj と method が実質演算子になっているというのと、

つかふと思ったけど Io の 引数書かないでおいてほげほげーってヤツは あれまさに呼び出し側から見えない lazy だなと。

(03:37)

_ あれ

http://www.jmuk.org/d/?path=2006/09/18#d18t01

D の lazy ってメモ化とセットになってるような意味での 遅延評価をやらせるための機能なんだろかとふと。

(03:40)

_ メモ化をメモ化

すれば再帰関数をなんとかできるんじゃないか… とか思ったんだけどなんかダメな気がする。

class memo_t(T) {
    alias rettype!(T) RT;
    alias argtype!(T) AT;
    this(T t) {
        fp_ = t;
    }
    RT opCall(AT a) {
        if (a in memo_) return memo_[a];
        return memo_[a] = fp_(a);
    }
private:
    T fp_;
    RT[AT] memo_;
}
memo_t!(T) memo(T)(T t) {
    return new memo_t!(T)(t);
}
class memo_mt(T) {
    this(T t) { m_ = memo_memo_(t); }
    rettype!(T) opCall(argtype!(T) a) { return m_(a); }
    static memo_t!(memo_t!(T) (*) (T)) memo_memo_;
    static this() {
        memo_memo_ = memo(&memo!(T));
    }
    memo_t!(T) m_;
}
memo_mt!(T) memo_m(T)(T t) {
    return new memo_mt!(T)(t);
}

ちなみにテストはされてない。

(04:55)

_ というか反省しなさい!

  • 送ったメールはスパム
  • 7時とかに起きたのに遅刻
  • 待合わせ場所を見てない(メール3通も気付いてない)
  • 言おうと思ってたけど言い忘れてたことが散見
  • 何百度と通ったであろう道で迷う
  • 眠い

なんかロクでもないじゃないか

(05:24)

_ let web f =

print_string "Web"; ikunai () in web ikunai

と言いつつメモ

http://tabesugi.net/memo/cur/cur.html

つまりメモ化に限らず 再帰関数に別の関数をかますには いじりたい関数がすごいいい形をしてるか、 あるいは duck typing な感じの 型付けの無い言語じゃねえとなぁみたいな。

でも D はなんとかできる気はする。 あ、 functor を基底にすりゃいいのか。 つーか Boost.function がそれだっけ覚えてにええ。

(14:04)

_ そろそろかなあ

http://icfp06.cs.uchicago.edu/schedule.html

(15:01)

_ PKU

http://dem.dyn-o-saur.com/ が最初から解いてくとか 始めてたので僕もやっている。 コードはほどほどに縮めつつ。

今1008まで。 1008縮める方針は想像つくけどめんどいなーとか。

1005はひどい事実 (http://d.hatena.ne.jp/Ozy/20060323#c1158512539) があるぽいから123Bとかになってるのな…

1007はトップみたいだ。 1001もCだとトップ。 どっちも適当だから誰かがやればすぐ追いつかれるだろうな。

(21:29)

_ 世の中には

  • 速いマシンで速いコードを書くことに価値がある人間
  • 遅いマシンでも速いコードを書くことに価値がある人間

がいるんだけど、前者の方がロマンがある。 でも実はそんなことはどうでもよくて、 なぜかというと、

  • 速度とかどうでもいい人間

が大多数だから

(22:41)

_ 一方僕は dumper を使った

みたいな。

http://d.hatena.ne.jp/shinichiro_h/20051225#1135499616

ごくたまに存在を思い出して使うけど割に便利なこともあったりはする。

(23:55)

本日のツッコミ(全4件) [ツッコミを入れる]
_ konn (2014-05-24 02:43)

制御構文とコメントが付いてないからまだ使えませんよ!

_ shinh (2014-05-24 02:43)

FORTHの制御構文ってなんかすごいキモかった気がしますよね。

_ konn (2014-05-24 02:43)

キモいです。条件の後にIFがきて処理の後にTHENがきます。あり得ません。
まあループだけはまともです。

_ Ozy (2014-05-24 02:43)

> ひどい事実
結構いろんな問題でショボいテストケースがあります。いずれrejudgeで消えてくれることを願います・・・。

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

2006年
9月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
1.shinh(2014-05-24 02:43) 2.k.inaba(2014-05-24 02:43) 3.YT(2014-05-24 02:43)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h