2009-02-01から1ヶ月間の記事一覧
記号操作は好きですが、そうやってできた閉じた世界から抜け出すのは、なかなかどうしてムズカシイです。
同じ問題で悩んでました。 monomorphism restriction - bonotakeの日記 Monomorphism restriction - HaskellWiki まだ分からないのが、単相性制約の存在意義です。 自分は「型宣言をしっかり書こう派」なので実用上の問題はありません。ただ、↓のようなコー…
すべてがλになる - 猫とC#について書くmatarilloの日記 - あなたもようやく λ 様の御業にお気づきになられたのですね。 そう。万物は λ なのです。 こちらは私どもが不況布教のためにお配りしている冊子です。 λ 様の御力の一端を感じ取っていただければと思…
前回のエントリに対して、m-hiyama さんから、色々と指摘をいただきました。 以下に訂正を、と思ったら、先に bonotake さんに書かれてしまった。 そもそも問題はというと、「ラムダ抽象=カリー化」という前提を僕が理解していなかったのが、いけなかったの…
行ってきました。自分なりに復讐、もとい復習。 前半はラムダ計算の話。 たとえば g = という関数を考えるとき、g^ = 、g^^ = 、g^^^ = という関数を作ることができる(これがラムダ抽象?)。 絵にすると↓こんな感じ。 これを見てて思ったのが、↓みたいに定…
『スマリヤンの決定不能の論理パズル』1 型の推論者で既に混乱しているのに、4 型の推論者とか出てきて泣きそう。紙と鉛筆がないと読めないし、遅々として進まず。 『To Mock a Mockingbird』Amazon で ¥1,500 以下だったので、脊髄反射でクリック。↑が終わ…
僕はいわゆる SIer の後方支援部隊にいる訳ですが、やはりバックオフィスはぬるま湯で、水が合わないので、いずれは現場に戻ってPMでもしようと思ってます。ただ、それで万事OKかというと、そうでもなく、何かムズムズするものが残るのです。 この間、大…
という訳で、書き直しました。 Haskell による Grass のインタプリタです。Grass コードのファイル名を与えて実行します。 必要な仕様は、全て満たしているはず。全角文字(UTF-8、Shift_JIS)も受け付けます。 バグ報告は随時お願いします。 Grass 人口が少…
Haskell で Grass のインタプリタを書いてみました。以前から書いてみたいとは思っていたのですが、どこから手をつければいいものやら分からず、半年近く経ってしまいました。悲願達成。 Haskell 版は既に mr_konn さんが書いているので、目新しいものではあ…
id:mzp さんに触発されて、Arrow 勉強中。 Haskell/Understanding arrows - Wikibooks, open books for an open worldの図が分かりやすいです。まずは簡単なサンプルで動作を確認。 -- オリジナル f1 as = tail as ++ init as -- 引数を2つの経路に分けて、…
http://projecteuler.net/index.php?section=problems&id=113 各桁の数字が昇順または降順に並ぶ数が10100未満でいくつあるか求める。 重複順列です。 main = print $ euler113 100 euler113 :: Integer -> Integer euler113 n = sum $ map nonBouncy [1..n]…
cut-sea さんが書いている グローバル変数が欲しい理由? について自分なりの見解を。 もとは Haskell でグローバル変数が欲しい理由 - あどけない話 の記事です。 Haskell でグローバル変数を持ちまわす必要があるかどうかは、ひとえに関数の設計にかかって…
http://projecteuler.net/index.php?section=problems&id=112 すべての数字が昇順または降順に並んでいる数を考える。2 桁以下の数はすべてそうだが、桁が増えるとその割合は減っていく。そのような数の割合がちょうど 1% になるのはいくつのときか求める。 …