2006-03-01から1ヶ月間の記事一覧

つながらない・・・

まだ、University of Nijmegenにつながらない。 どうなってるんだ?

Concurrent Clean : Clean入門

http://www.geocities.jp/lethevert/softwares/clean/gettingStarted13.html 「(13)型推論」を書きました。 初心者のうちに、もっとも混乱させられるものの一つ、型エラーについて、その手がかりになるような説明を書いたつもり。

『増補改訂版Java言語で学ぶデザインパターン入門マルチスレッド編』無料プレゼント

欲しいです。 http://d.hatena.ne.jp/hyuki/20060316

Java : WeakReference

久しぶりにJavaのネタです。 Javaがガーベジコレクションを持っていることは良く知られていますが、その詳細な動作を理解している人は少ないようです。Javaは世代別GCというコピーGCの発展版を採用している(下記参考)のですが、その辺の詳しい話は置いてお…

Concurrent Clean : 入力マクロ

欲しいな。あれがあると、任意のリテラルを捏造定義できるのに。

Concurrent Clean : Clean入門

http://www.geocities.jp/lethevert/softwares/clean/gettingStarted12.html 「(12)多相性・型クラス」を書きました。段々ややこしくなってきました。 次は、「(13)型推論」です。 全体の構成を再掲しておきます。 環境構築 プロジェクト 基本データ型 基本…

Concurrent Clean : JVM

CleanをJVMで動作するclassファイルにコンパイルするのは、おそらくそれほど難しくないはずなんです。 まず、CleanVMのオブジェクトを作ります。この中に、スタックやグラフ領域を作ります。 Cleanの関数は、「CleanVM -> CleanVM」という型のstatic関数にな…

Concurrent Clean

f [a:as] = ...と書いてきたが f [a:ar] = ...と書くほうがいいかも。 f as=:[a:ar] = ...と書けるから。 rはrestのr。 Clean入門の記述を一括修正する?

Concurrent Clean : 型クラスと型構成子クラス

http://www.hyuki.com/haskell/20041228215300をみて、型クラスと型構築子クラスの区別に気づく。 Cleanではどうなっているのかと見たところ、 http://sky.zero.ad.jp/~zaa54437/programming/clean/LanguageReport21/Chap6.html#sc4 型構成子クラスという名…

ほんつな

会話 しおり:どんな分野の本をお探しですか? あなた:MITで使われるコンピュータプログラミングの教科書 しおり:一番関係ありそうなのはどれでしょう?私は一番上かなと思うんですけど。(日立製作所/入門/事業) あなた:入門 しおり:イメージがわいて…

SICP : Ex3.56 : Concurrent Clean

A famous problem, first raised by R. Hamming, is to enumerate, in ascending order with no repetitions, all positive integers with no prime factors other than 2, 3 or 5. Start :: [Int] Start = take 20 S where S = [1 : uniqMerge S2 $ uniqMer…

SICP : Ex3.59 : Concurrent Clean

exp_series = [1, 1, 1/2, 1/(3*2), 1/(4*3*2), ...] = [1/n!] cos_series = [1, 0, -1/2, 0 , 1/(4*3*2), ...] sin_series = [0, 1, 0 , -1/(3*2), 0 , ...] Define a procedure integrate_series that takes as input a stream a0, a1, a2, ... representi…

SICP : Ex3.60 : Concurrent Clean

add_series as = as add_series bs = bs add_series [a:as] [b:bs] = [a+b : add_series as bs] mul_series _ = mul_series _ = mul_series aa=:[a:as] bb=:[b:bs] = [a*b : add_series (mul_series as bb) (map ((*)a) bs)] Start = mul_series [1,1,1] [1,…

SICP : Ex3.61 : Concurrent Clean

S * X = 1 (1 + Sr) * X = 1 X + Sr * X = 1 X = 1 - Sr * X procedure invert_unit_series that computes 1/S for a power series S with constant term 1. invert_unit_series [1.0:ar] = X where X = [1.0 : map ~ $ mul_series ar X] Start = take 20 $ …

Concurrent Clean : 勘違い

リストが単調増加であることを isMonotone ls = foldl (で確認できると思ったけど、そんなことはなかった。 勘違いだった。 isMonotone ls = all $ map (uncurry (と書くべきだった。

Concurrent Clean : 総称関数

[id:lethevert:20060311:p2] Generic、使ってみた。 Start = gMap{|*->*->*|} inc dec (5,5) 結果は、(6,4) Start = gMap{|*->*->*|} inc dec (5,5,5) 結果は、(5,6,4) Start = gMap{|*->*->*|} inc dec 5 コンパイルエラー Start = gMap{|*->*->*|} inc dec…

Concurrent Clean : 総称関数に関するリンク

http://www.generic-haskell.org/ http://page.freett.com/shelarcy/diary_2004-03.html#mars162004 この辺は、さらに資料少ないなぁ。

Concurrent Cleanの歴史

http://www.cs.ru.nl/~clean/Recent_Latest_News/body_recent_latest_news.html もっとも最初のリリースは、Mac版でした。 1987 Clean 0.5(中間言語として) 1993 Clean 0.8 1995 Clean 1.0(最初の成熟版) 1996 Clean 1.1 1997 Clean 1.2 1997 Object I/O…

Concurrent CleanがHaskellと違うところ

型注釈を使って、プログラムの実行を制御しようという発想かな。

Concurrent Clean

そういえば、最近、本家サイトが落ちてるみたいなんですけど・・・ ・・・落ちてるというか、名前解決できない。 こちらはwikipediaではなくて、wikibook -> http://en.wikibooks.org/wiki/Concurrent_Clean

Concurrent Clean : Clean入門

http://www.geocities.jp/lethevert/softwares/clean/gettingStarted11.html 「(11)内包表記」を書きました。 内包表記を簡潔に説明するのは難しい。

設計時の考えが大きく外れていること

http://fukumori.org/diary/20060311.html#p01 Bob Kahn: ところが、設計している時には、8ビットあればもう十分、完璧だろうと本気で信じていた。 を見て、そういうことってあるよなとしみじみ。

Concurrent Clean : 総称関数

Cleanの総称関数について、あまり突っ込んで調べたことがなくて、型クラスとどう違うのだろう、みたいに思っていたのだけれど、今日、少し、ちゃんと読んでみた。 http://sky.zero.ad.jp/~zaa54437/programming/clean/LanguageReport21/Chap7.html 総称定義…

Concurrent Clean : Clean入門

http://www.geocities.jp/lethevert/softwares/clean/gettingStarted09.html 「(9)無名関数」を書きました。 let式を使って、ローカルスコープが定義できる case式を使って、パターンマッチを書ける if式を使って、条件分岐が書ける Yコンビネータを使って、…

Concurrent Clean : Clean入門

http://www.geocities.jp/lethevert/softwares/clean/gettingStarted10.html 「(10)演算子」を書きました。

Concurrent Clean : Clean入門

http://www.geocities.jp/lethevert/softwares/clean/gettingStarted08.html 「(8)クロージャ・カリー化」を書きました。

Concurrent Clean : iterate

Cleanの標準ライブラリに、iterateという関数があります。 //関数fと値aに対して、[a, f a, f (f a),...]という無限リストを返す iterate f a = [a : iterate f (f a)]というようなものですが、"Improving Sequence"を見て、ああそういう使い方があるのか、…

Concurrent Clean : 関数適用演算子

($) infixr 1 ($) f a = f aの他に、 (,) infixl 2 (,) f a = f aという演算子を用意すると便利かと思ったのですが、カンマは使えませんでした。 よく考えると、タプルと区別できなくなるな。

covariant/contravariant

について、なんか、復習したので、そのことを書こうかと思ったら、[id:m-hiyama:20060307:1141702593]にほぼそのままな記事が書かれていたので、リンクだけ貼って終わりにします。

Concurrent Clean : Clean入門

http://www.geocities.jp/lethevert/softwares/clean/gettingStarted07.html 「(7)高階関数」を書きました。