2009-08-01から1ヶ月間の記事一覧

本日のメモを起動する方法

動機 メモをとるためのテキストファイルがほしい。 しかし名前を考えるのが面倒。 概要 今日の日付(yyyyMMdd.txt)のテキストファイルをなければ作成し、開く。 実装 バッチファイルでそのまま。 @echo off SET f=%date:~0,4%%date:~5,2%%date:~8,2%.txt IF N…

不動点演算子と再帰呼び出しのアスペクト

動機 再帰呼び出しにメモ化がかかってほしい。 概要 Scalaでは、高階関数と遅延評価が使えるので 不動点演算子を実装することができる。 自分で再帰を書く代わりに不動点演算子を使う書き方を試み 再帰呼び出しのメモ化ができることを確認する。

君は必ずmainのところに戻ってくる

(8/5更新) 実験4を追加。 概要 Scalaでは、遅延評価が許されているので returnがメソッドの実行ではない場所で評価されることがある。 これで遊んでみる。 実験1: foreachの中でreturn まずは簡単な使い道。foreachに渡すブロックの中でreturnする。 package…

スタックオーバーフローしない相互再帰

概要 相互再帰(互いに呼びだし合う再帰)が 末尾再帰(再帰呼び出しが末尾のみに出現)の場合、 ループでスタックを積まずに実行することができる。 このための高階関数を用意する。参考: 相互再帰 http://ja.wikipedia.org/wiki/相互再帰 相互再帰の例: Intの…