2008-07-01から1ヶ月間の記事一覧

Project Euler: Problem 17

やっぱり適当なんだけど…。 strlen 1 = "one" strlen 2 = "two" strlen 3 = "three" strlen 4 = "four" strlen 5 = "five" strlen 6 = "six" strlen 7 = "seven" strlen 8 = "eight" strlen 9 = "nine" strlen 10 = "ten" strlen 11 = "eleven" strlen 12 = …

Opera 設定メモ

Opera 設定メモ。最近いくつかのマシンで Opera の設定をしているのでいい加減うざい…。 アドレスバーからの Google 検索でキーボードショートカットが使えるようにする http://www.google.com/search?q=%s&sourceid=opera&num=%i&ie=utf-8&oe=utf-8&esrch=B…

Problem 10

えぇーい、力技じゃい。問題を解く場合にはコンピュータが頑張らなければいけないのであって、人間は頑張ってはいけないのだ!(意味が違う) object Problem10 { def natural = new Iterator[Int] { var num = 1 def hasNext : Boolean = true def next : Int…

Project Euler: Problem 12

Scala で超素直に書いてみた、が、止まらない。ドンマイ。Iterator - うなの日記を参考に Scala でイテレータを使ってみた。 object Problem12 { def divisors(n:Int) : Int = { var c = 1 var result = 0 while ( c <= n/2 ) { if ( n % c == 0 ) result +=…

現実逃避的に書いたので

http://blog.tmorris.net/scala-exercises-for-beginners/ せっかくなので貼っておく。 object Exercise { def succ(n: Int) = n + 1 def pred(n: Int) = n - 1 def add(x:Int, y:Int) : Int = if ( x == 0 ) y else add(pred(x), succ(y)) def sum(xs: List…

久しぶりの Haskell

そして久しぶりの Project Euler。今は単純作業なお仕事ばかりやっているのでパズルで気分転換。 isEquiv [] [] = True isEquiv (x:xs) ys | elem x ys = isEquiv xs $ filter (/=x) ys | otherwise = False isEquiv _ _ = False isOK x = let (n:ns) = map …

Agda 大ブーム

Agda というか依存型が(主に自分の周りで)流行っている。id:yoshihiro503 さんが Agda にはまっていて頼もしい感じなのでいろいろ教えてもらえればと思います。

Agda2 じゃなくて Agda1 にする

どうやら Agda2 はまだ主流じゃない(?)ような感じなので、まずは Agda1 を触ってみようと思った。こっちならチュートリアルとかも少しはあるし。というかそもそもの動機の論文では Agda1 を使ってるし…。(最初に気づいとけよ)

Emacs agda-mode の使い方

Agda2 まじわかんない。心折れそう。とりあえず agda-mode で使い方がわかったやつを適当 メモ。そのうち追加します。 C-c C-x C-l agda で証明を開始。 ? 証明がよくわからないところは ? で埋める。 assoc x y z = ? これで C-c C-x C-l とすると ? がゴー…

Filter の Lemma

なときに、である証明。よくわかってない。まず filter の定義。 filter : forall {a} -> (a -> Bool) -> [ a ] -> [ a ] filter p [] = [] filter p (x &#8759; xs) with p x ... | true = x &#8759; filter p xs ... | false = filter p xs で、証明。 mod…

コモンズ・マーカー

http://commonsmarker.com/っていうのがすごい。(http://idm.s9.xrea.com/ratio/2008/07/08/000789.htmlさん経由) これとまったく同じものを作ろうとしておりました(ほとんど手は動かしてませんが)。マークを付ける先はウェブじゃなくて論文pdfのつもりでし…

Agda 練習中です

Agda を勉強中です。いわゆる初心者マークです。どこぞのチュートリアルに載ってたこのコードが通らないので困る。最後の odd k の型が合わないらしい。 あと dotted pattern っていうのもいまいち理解に自信がない。型から値がわかるような仮引数につけるっ…

通りました。疑ってすいませんでした。

summer school library っていうのを使ったら動きました。あとでライブラリのコードを読まねば。 module Views where open import Data.Nat data Parity : &#8469; -> Set where even : (k : &#8469;) -> Parity (k * 2) odd : (k : &#8469;) -> Parity (1 +…

Agda 練習

あまりわかってないけど、とりあえずいくつか適当な関数を書いたのでメモ。依存型うける(気がする)。 agda2 の emacs モードが使いこなせないのと関数を実行する方法がわからんのが問題である。 module NList where data Nat : Set where zero : Nat succ : …