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

Curry-Howard

とりあえずはメモだけ このような「型=命題,プログラム=証明」という対応のことを,カリー・ハワードの対応(Curry-Howard correspondence)という http://itpro.nikkeibp.co.jp/article/COLUMN/20070909/281498/ http://www.kmonos.net/wlog/61.html#_05…

契約プログラミング

http://blogs.wankuma.com/episteme/archive/2008/06/23/145011.aspx メイヤー本は今年の抱負に含まれていたような気がするけど、まだ買ってないや(汗 高いし、積読も結構あるし、まだまだ先かなぁ。。。 以下メモ 第13回 「表明」と「契約」による命令型プ…

ありがとうDreamSpark Visual Studio 2008 Professional Edition をやっとインストール。 学生の皆さんは恩恵を受けましょう。 今年もUSB扇風機の季節がやってまいりました 去年非常にお世話になったUSB扇風機さんを引っ張り出してきました。 今年もよろしく…

この方は

国立情報学研究所の先生が型付きラムダ計算についての難問を解決したそうで。未解決問題22問のリストがあって、このリスト中の問題解決は世界初だって。スゲー! http://d.hatena.ne.jp/siokoshou/20080618#p1 すげー! 問題そのものを解いたのは去年みたい…

DreamSpark

国際学生証が届いたー。 早速DreamSparkで認証し、そふとうえあ〜達をダウンロード。 ありがたやありがたや。 VS2008Pro入れる前にVC#2008Expアンインストールした方がいいのかな。

Meadow + SLIME

http://d.hatena.ne.jp/macLisper/20070604/1180945094 http://d.hatena.ne.jp/BlacksmithMirai/20080130/1201658045

最近全然プログラミングの勉強できてない。 Haskellも全然だし、On Lispも再開できてない。せっかくマクロのところなのに。 脳みそが少しLispに慣れてきたのにまた退化しちゃう。 記号論理も完全にストップしてしまった・・・。 レポートとか死んでしまえば…

lambda

Haskellではλ式をこう書くんですね。 Prelude> (\ x y -> x ** y) 2 10 1024.0 GHCiでは関数を定義できないけどラムダ式ならOKか。 Prelude> let c = (\ x y -> x ++ reverse y) "hello, " Prelude> c "dlrow" "hello, world" Prelude> (\ x -> (\ y -> x + …

畳み込み - fold(l|r), reduce

RubyとPythonの場合 http://d.hatena.ne.jp/nullpobug/20080609/1212994658 Haskellだとfoldl(fold-left)とfoldr(fold-right)らしい。 定義を拾ってきた -- fold-left foldl :: (a -> b -> a) -> a -> [b] -> a foldl f z [] = z foldl f z (x:xs) = foldl f…

独学によって

赤坂玲音さんがインタプリタのことを「インタプリンタ」だと思い込んでいた事件は少々有名かもしれませんが、俺がオートマトンをずっと「オートマン」だと思い込んでいたことは秘密だぜ。 自動戦隊オートマン! 数年前のことかな。。。少なくとも高3の春にソ…

Tech-Ezoの勉強会をUstreamで覗いてて、gliffyというものを知った。 gliffy http://www.gliffy.com/ こんな感じ: bubble.us 偶然別のものも見つけた。シンプルで使いやすいかもしれない。 http://www.bubbl.us/ こんな感じ:

北海道関数型言語勉強会@札幌#2

id:mrknセンセーとジクンさん主催の北海道関数型言語勉強会@札幌#2に参加してきました。 この時期にしてレポートがひとつも出来ていないので(!)止むを得ず欠席しようと思っていたのですが、レポートどうにでもなりやがれ精神が湧き上がってきて、結局行く…

クロージャ

ふつけるの4章に、関数内で関数を定義する方法があったのでクロージャを作ってみよう。 closure :: Int -> (Int -> Int) closure x = fn where fn :: Int -> Int fn y = x + y main = do let f = closure 95 print $ f 5 うまく行きました。 しかしながら、…