トップ 最新 追記

ohai日誌

2003|12|
2004|01|02|03|04|05|06|07|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|06|08|10|11|
2008|01|02|03|04|05|07|09|
2009|01|02|
2013|06|12|
2014|01|02|03|04|06|09|10|12|
2015|04|
2016|09|
2018|02|

2005年11月02日

_ ICPC0日目

ACM/ICPCにKMCのメンバーが参加する ことになりコーチとして東京工科大学に同行することになりました。

そして大学で発表してそのあとすぐ出発、22時に到着。風邪をひいてしまい ました。


2005年11月03日

_ ICPC1日目

なんか夜眠れなかったので研究について考えていると夜があけてしまった。

他の参加者と合流、ささださんがいたのに驚き。


2005年11月04日

_ ICPC2日目

コンテスト本番。外野で観戦するのも結構楽しいものでした。

その後交流会で騒ぐ。13位でしたがチームメンバーは来年もやる気のようです。 やる気を継続させるのは難しいものですが努力してほしいです。


2005年11月05日

_ ICPC3日目

最後にボーリングを楽しむ。ろくに投げていないのに翌日手が痛くなってしまった。

その後東京の友達のところに遊びに行く。先輩の引越し祝いに参加し 鍋を食べた。東京に行ってしまった人々と会え、実に楽しかった。

本日のツッコミ(全2件) [ツッコミを入れる]

_ 工科大のRuby好き [ICPCで工科大できてましたか.お疲れ様です. 一度お会いしてお話したかったです. ここで情報をくれれば・・・残念...]

_ ohai [それは残念。そういえば日記に今後の予定とかを書いておけば そういう効果も期待できるんですね。]


2005年11月06日

_ ICPC4日目

家に帰る。疲れた。


2005年11月07日

_ TrackBack

トラックバックを有効にした

_ Ruby勉強会@関西7

NFで行けない。笹田さんが来るというのに残念なことだ。


2005年11月13日

_ Concurrent Clean

最近 Concurrent Clean をいじりはじめたのですが、 Clean Game Library が Windows 以外で 動かないらしくかなりやる気が萎えてきました。あと Linux での GUI が Xview/OpenLook でそれは古臭い。

そういうライブラリ関連を除けば結構良さそうです。


2005年11月14日

_ ゲーム

来年こそシューティングゲームを作ってNFに展示する。今からこんなこと言って いてどうするんだろうか。


2005年11月16日

_ Rubyist Magazine 0011号

私も解説 Ruby Refactoring Browser - Ruby Refactoring Browserの組み込みという記事を書いて います。是非読んで新しい環境でRuby Refactoring Browserを使えるようにしてください。


2005年11月20日

_ Rubyのproc

以下のようなものを思いついた。

def bind(sym, *p1)
  proc{|*p2| obj, *args = *(p1+p2); obj.__send__(sym, *args)}
end

class Symbol
  def to_proc
    proc{|obj, *args| obj.__send__(self, *args)}
  end
end

これで、

(1..10).inject(&:+) # => 55

とか

(10..20).map(&bind(:*,3)) # => [30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60]

とかできる。

と思っていたら Symbol#to_proc のほうは Ruby/Extensions に同じものがあった。


2005年11月21日

_ Concurrent Clean

C の関数を呼びだそうとしているのですが副作用のある関数を 正しくよぶにはどうすれば良いのかで苦労しています。


2005年11月22日

_ 続関数型言語でゲーム

以前、関数型言語でゲームが作りにくいという話を しました。で、その問題をある程度解決する手段を思いついたので書いておきます。 以下のコードはCleanのコードです。

まず、なにが問題かというと、

// two records
:: A1 = { x :: Real, y :: Real }
:: A2 = { x :: Int, y :: Int, dx :: Int, dy :: Int }

という二つのレコード型がある場合、xというフィールド名がかぶっているので、 それにアクセスする場合、a.A1.xやb.A2.xと書く必要があるのが面倒であることです。 Haskellでは同じことをしようとするとコンパイル時にエラーがでますし、OCamlでは A1が使えなくなったりします。発生する現象は異なりますが根本的な問題は同じです。

そこで、型クラスを使い以下のような多重定義関数を作ります。

class x_ a b :: a -> b

instance x_ A1 Real where
    x_ {A1| x} = x

instance x_ A2 Int where
    x_ {A2| x} = x

すると、

x_ {A1| x=1.0, y=2.0}

や、

x_ {A2| x=3, y=4, dx=5, dy=6}

といったことができます。

型クラスの定義や多重定義関数の定義は数が増えた場合ソースコードジェネレータで 生成したほうが楽でしょう。

Haskellだと型クラスにいちいち名前を付けるぶん面倒が増えますが同じことができる でしょう。OCamlはこのまま適用はできないので G'Camlを使うか、 関数ローカルな空間に x_ のような関数を定義するといった方法をとる必要が あるでしょう。

_ NF

明日から京大の学祭が始まります。KMCも展示をしています。私は何も作っていませんが。 お暇なら見にきてください。木曜の午前には会場にいる予定です。まあ平日の午前なんて いう時間帯ですが。


2005年11月27日

_ NF終了

疲れた。


トップ 最新 追記