2007-08-01から1ヶ月間の記事一覧

Haskell : 回文を見つけるアルゴリズム

http://johanjeuring.blogspot.com/2007/08/finding-palindromes.html 文字列に含まれる回文を線形時間で見つけることができるアルゴリズムだそうです。

Java : JDBC

http://d.hatena.ne.jp/odz/20070810/1186764019 http://d.hatena.ne.jp/bleis-tift/20070812/1186847743 また危険な話題に手を出しているような気がしますが・・・ RDBというのは並行アクセスを前提としたシステムなので、トランザクション分離レベルという…

おぶじぇくとしこー : 名詞抽出法

名詞抽出法なんてものがあるのかっ。 なんていうか、くらくらするな。いままで考えたこともなかったよ。 「オブジェクト指向 = 英語の語順」な思考はこのへんにも元凶があるのかな。 - 本来の使いかたは、クラスの候補を探すための手がかりとして使うという…

Concurrent Clean : Finger trees

実装完了。sourceforgeのリポジトリにチェックインした。 https://cleanoptenv.svn.sourceforge.net/svnroot/cleanoptenv/trunk/Data - String2も作って、チェックインした。

Concurrent Clean : reduceとtoList

まえに、toListがあればreduceいらないけど・・・という話を書いた。 [id:lethevert:20070802:p1] reduceとtoListは表裏なのだけれど、効率のことを考えてみると(思考実験だけ) reduceは、コレクションに含まれている要素に直接関数適用していくので効率よ…

UPS

http://www.jmuk.org/diary/2007/08/11/0 うちは電化製品が多いので、夏とか冬とか消費電力があがる時期はちょくちょくブレーカーが落ちるので、デスクトップマシンをかった時には電力消費のピークの時期までにはUPSを買っておかないとと思っていたのでした…

Concurrent Clean : Re: reduceとtoList

先の話は、ちょっと間違ってるな。 同じ高階関数でも、mapはマクロではない。マクロで定義しているのはfoldl/foldrだけだ。 そういえば、この件は、Clean入門の記事を書いていたときに、一度考察していた。 foldl/foldrは、正格性解析の結果で最適な評価順序…

Concurrent Clean : Finger Trees : 正格性

正格性をどの程度設定するかを検討している。 http://www.kmonos.net/wlog/76.html#_1947070805 にあるように、ある程度の非正格性を残して置く方がよいケースもあるのだけれど、一般的には正格にできるところは正格にしておく方が効率がよい。 Annotated fi…

Haskell : OSConでのSimon Peyton Jonesの講演

http://d.hatena.ne.jp/desumasu/20070811/1186838102 これは後で見てみよう。私はどうもHaskellのことを知らなさ過ぎる気がするので。

Haskell : arrow

なんか、最近arrow流行ってる?

Concurrent Clean : Finger Trees : 適用対象

基本的なところは大体実装できた。 作りながら思っていたのだけれど、これってどういうところに使うのがいいだろう? 参考にしている論文には random-access sequences max-priority queues ordered sequences interval trees という例がある。 Finger Tree…

Concurrent Clean : Haskell : Re: なぜ GHC のビルドは遅いのか?

http://page.freett.com/shelarcy/log/2007/diary_08.html#why_we_spend_many_time_to_build_ghc 逆に言えば、既に(最適化された)GHC をインストール済みの環境で、最適化オプションを外してビルドする場合には、かなり高速にビルドを終えることができます…

Re: プログラミングの心理学

http://tabesugi.net/memo/cur/81.html#071942 こういうの、リアルでやったことある。これが、結構うまくいったりするんだよね。 普段から条件をそろえるように注意はしているのだけれど。

Re: テンソル

[id:m-hiyama:20070807:1186455383] テンソルのことをまじめに考えたのは、もう20年くらい前かなー。そのときに結局分からなくて(当り前だけど)、それっきり関わってないな。

Concurrent Clean : 型と演算子

型があるということは、プログラミングの上での制約になることもあるのだけれど、型のおかげでプログラミングの柔軟性が向上することもある。Cleanの演算子は1つの典型だ。 Cleanの演算子は、使える文字の種類に制限がない。なので、次のような演算子を定義…

Concurrent Cleanに関する求人

なんじゃこりゃー どこらへんにConcurrent Cleanが関連しているのですか?

Concurrent Clean : Re: 型クラスの制約

[id:lethevert:20070807:p1] まあ、型クラスで行う辞書渡しを手作業で実装すればいいだけですけどね。

初心者にやさしい言語

Excelですよ!

Concurrent Clean : 型クラスとspecial

型クラスのインスタンスにはspecialを付けることで特化関数を生成することができる。 class Deque q a instance Deque (FingerTree v) a | Monoid v special v = Int; v = Real と書くと、FingerTree v aのDeque操作に関する関数群に、一般の型に対する関数…

Concurrent Clean : 型クラスとクラスコンテキスト

classに付けられたクラスコンテキストと、instanceに付けられたクラスコンテキストでは意味が違う。 class Measured a v | Monoid v where measure :: a -> v という宣言は、単に、Measuredクラスに属する型は、Monoidクラスにも属していますということを言…

Concurrent Clean : Re: 型クラスの制約

次のようにすれば、まあ、回避できるのだが、 :: Node a v class Measured e v where measure :: (e v) -> v instance Measured (Node a) v これだと、(e v)の形式に当てはまらないものをMeasuredに指定することができない。特に、 :: Node v a としてしまう…

Concurrent Clean : 抽象データ型の型変数のkind

抽象データ型の型変数のkindは、必ず「*」になるのだろうか?まあ、そうするしかないような気もするけど。 :: FingerTree v e a //| Measured (e a) v で、eのkindは「* -> * -> *」であってほしいのだけれど、「*」になってしまう。 :: FingerTree v e a = …

おぶじぇくとしこー

いい加減、オブジェクト指向を英語の文法にマップして考えるのはやめようよと思うのだけど。[id:sumim:20040525:p1]とか見ても、英語の文法を実現しようとして・・・なんて書いていない(よね?) if ("foo".equals(text)) { ... は、Javaであって、英語では…

Haskell: Re: 型クラスにおける関数従属

http://www.jmuk.org/diary/2007/08/07/1 HaskellでもGHC拡張を使わないと書けないのですね。なるほど。じゃあ、仕方ないのか。

Concurrent Clean : Re: Finger Trees

むー。internal overloadingエラーが取れない。そもそも、原因が分からない。 - 原因が分かった。[id:lethevert:20070807:p1]に書いた。

Re: LL魂

http://gikoforth.s13.xrea.com/td/?date=20070805#p01 Clean速そうだなぁ。ABCマシンの勉強してみよっかな。 うぉ。ABCマシンから入るとはかなりのアレですね!(褒めている) 不完全ながら、命令一覧を作ってあるので、御利用ください。 http://cleanj.sou…

Java: Re: 文字列比較のバッドノウハウ

http://www.saisse.jp/pukiwiki/pukiwiki.php?%C6%FC%B5%AD%2F2007-08-02 via [id:Isoparametric:20070806:1186404586] これって、 if (1 == c) { ... と同じ並びにしてるだけじゃないの?

Concurrent Clean : 型クラスの制約

class Measured a v where measure :: a -> v instance Measured (Node v a) v みたいなのを書こうとして、instanceに型変数 v が2回出てくるためにエラーになってしまう。 って、この制約厳しすぎない? - さんざん回避方法を考えているのだけど、全然思い…

LLSpirit (2)

昨日書き忘れたこと。 Sukuna面白い。http://gikoforth.s13.xrea.com/td/。なでしこ(http://nadesi.com/)の話を聞いていても思ったけれど、Stack型言語とかConcatenative言語とかって、「あれ」とか「それ」とかっていう概念を自然に表現できるよね。 Pnut…

LLSpirit : Concurrent Clean : CleanX

[id:sshi:20070805:p1] あー。確かにCleanの紹介でCleanXで実現できる話を普通に混ぜてるのはやや反則かもしれなかったですね。 まあでも、国内のCleanユーザーの現状を考えると、Clean&CleanXを組み合わせて使っている人口の方が主流派(笑)なので・・・ …