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

Generic Haskell

のやつで、 mapE{|∀f::*→*.(Functor f)⇒t|}ρ = mapE{|t|}ρ(f:=liftE)というのがあったけど、Haskellってbounded quantificationって使えるの? - 「やつ」ってこれね。http://lethevert.blogspot.com/2006/10/verious-types.html

Concurrent Clean : Re: 型クラスと存在型

[id:lethevert:20061016:p1]では、ちょっと何がいいたいかよく分からなくなっていたのだけれど、 ::Number :== E.(Arith a): Number ((a -> a) -> Number) introNumber :: a -> Number | Arith a introNumber n = app where app f = introNumber (f n) appNu…

Concurrent Clean : 型クラスと存在型

ちょっと思うことがあっていろいろ試していたら、http://lethevert.blogspot.com/2006/10/what-does-this-program-means.htmlのようなバグ(?)を見つけたわけですが、 一番やりたいことはこういうことで、 ::Number | Arith a :== aあるいは、 ::Number :=…

C--

Cなんか勉強している暇があったら、C--の勉強をするべきだと思った。 google:C--]は検索性が悪いので、[google:C minusで検索すべし。

Concurrent Clean : rank-N polymorphism

[id:lethevert:20051229:p4]で、ランクN多相はまだ使えないよ、ということを書いていたのだけれど、 翻訳された言語報告のバージョンが2.0だったので、古かったらしい。 http://lethevert.blogspot.com/2006/10/re-verious-types.html のサンプルに見られる…

OCaml : リストの比較

OCamlはtype classがないということは、 [1,2,3] == [1,2,3]のようなリストを比較するような関数を書く場合には、リストの要素の型毎に用意するか、要素の比較用の関数を明示的に渡してやらないといけないのかな?

小さなVM

[id:squeaker:20061013:p2] ちょっと面白いなと思ったので、メモ

Haskell : Generic Programming

Generic Haskellの資料を見ながら、Generic Programmingのお勉強中。 CleanのGenericsはgeneric functionのindexにkindしか取れないようで。実際に適用されるtypeは、type inferenceに任せるしかなさそう。 でもって、CleanにはAscriptionの構文がないので、…

オブジェクト指向と関数型

[id:sumii:20061013:1160743984] # controversialなところにわざわざな感はあるのですが・・・ 言語研究としてOOと関数型が対立しないのはわかるのですが、 OOの方面で蓄積されてきた資産を、関数的OOに適用したときに、どの程度の変更が必要になるのかとか…

Concurrent Clean : Concurrent?

もう少し見てみた。 どうも、{P}や{I}という注釈で並列性を記述するみたい。 Fib n -> + ({P} Fib (- n 1)) (Fib (- n 2))というふうに書くと、fibを並列で計算するようになるみたいです。 ただし、この記法は、今のClean 2.1.1はもちろん、昔のClean 1.3.2…

Blogger障害中

Concurrent Clean : Concurrent?

Addison-Wesley本(Functional Programming and Parallel Graph Rewriting (International Computer Science Series))のまだ見ていなかったConcurrent Programming関連の部分をざっと眺めてみたのですが、ここで使われているABCマシン命令は、今のCode Gene…

C

そういえば、私はC言語のことは全然わからないんです。全然というのは、SQLiteのClean向けbindingを作るのにGoogleを引き引きしなければいけないというくらいダメです。 当然、アセンブラもよくわかりません。YTさんのサイトの助けがあって、やっとClosure f…

Re: SQLite3 binding for Clean

Now the package is available here: http://sourceforge.net/project/showfiles.php?group_id=179225 Suversion repository can be browsed here: http://svn.sourceforge.net/viewvc/cleansqlite/trunk/ It is distributed under the modified BSD license.

Concurrent Clean : Hilde

ライブラリの中身をもう一度いろいろ見ていたら、Hildeというライブラリを見つけた。いろいろ便利そうなモジュールが詰まっているのだけれど、どういうカテゴリで集まっているのかよく分からない。 あとでじっくり調査するか。

SQLite : メモリ管理

SQLiteのAPIのメモリ管理がどうなっているのか追っていた。 sqlite3_column_textで得られた文字列を使い終わった後に誰が解放するのか不明なため。 とりあえず、利用側で解放しておけばいいのか? - ソースを追いかけるのをやめて、テストプログラムを作って…

Concurrent Clean : SQLite : cycle in spine

大体できてきたのだけれど、最後のところでcycle in spineエラーが起こる。 - どうやら、Cleanの関数呼び出しの規約をよく理解していなかったことが原因だった模様。 返値がタプルでない場合は、最後にthunkを更新するコードを追加しておく必要がある。 たと…

SQLite binding for Clean

というわけで、完成しました。 いまのところWindows専用だけど、ちょっとコードを修正するだけで他のOSでも動くようになるはず。 Sourceforge.netにプロジェクト申請しておいたので、準備が出来次第、そっちに登録しておきます。 急いで使ってみたいという人…

Python : 微妙・・・

立て続けに匿名コメントが3件もつくと、Python関連の話を書く気がなくなるなぁ。

Lisp

とは、Lisであるかを試す述語である。

Re: C++ for Haskeller

http://d.hatena.ne.jp/w_o/20061008#p1 私のようなC++初心者がC++のtemplateを学ぶには格好の教材ですね。

Concurrent Clean : SQLite

のバインディングを作ってみようと考え中 - http://www.sqlite.org/download.htmlより sqlitedll-3_3_7.zip sqlite-source-3_3_7.zip をDL。sqlitedll-3_3_7.zipからはsqlite3.dllを、sqlite-source-3_3_7.zipからはsqlite3.hを入手。 - なんとなく飲み込め…

CとC++での例外処理

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdndeepc/htm/deep051099.asp サイドバーの文字化けはどうすればなおるのか。

家計簿アプリ

に実データを入れて、いろいろ調整中。フィールドを増やしてみたり。

Python : メソッドチェーンが微妙

obj.methodA(a, b) .methodB(c, d)とやると、Syntax Error。 よく考えれば当然だけどなんだかなー。 obj.methodA( a, b).methodB( c, d)かなぁ? bが長いと分かりにくくなる。 obj.methodA( a, b ).methodB( c, d)こう?

Python : None.append()

Noneにappend(a)すれば、[a]になれば if key in dic: dic[key].append(val) else dic[key] = [val]とか書かなくても、 dic[key].append(val)だけでよくなるのに。 まあ、このくらいしか使いたいことはないので、 append(dic, key, val): if key in dic: dic[…

Haskell : Listモナド

って、ambと同じような処理がかけるんだっけ? - do 後で調べる

Scheme : amb

ambオペレータってScheme処理系に標準でついてくるのかな? 独習Scheme三週間というサイトを見つけたら、ambだけで1章できていたので。 - gaucheに(amb 1 2 3)って打ち込んでも、エラーになるな。標準ではないのかな? - (後で調べる)

Haskell : 1 + 3.4 = ?

[id:mr_konn:20061004:1159969890]より OCamlは1と3.4を足せません。Haskellは足せます。それは型クラスがあるからです。 ってホントかよ Hugs> 1+3.4 4.4 Hugs> let a = 1 in let b = 3.4 in a + b 4.4ホントだ・・・ うーむ。気持ち悪い、と思ってしまうの…

Python : import文

Pythonistaになりました。 例の家計簿アプリを作るのに、Pythonを使ったので。 で、地味に便利だと思ったのが、ローカルなインポート文が書けるところでした。 def nanikakansuu (): import hokanomodule //sono module wo tsukatta codeところで、pythonist…