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

Erlang : パッケージ

http://d.hatena.ne.jp/m-hiyama/20070517/1179363537 それは言いがかりです。Javaだって同じ仕様ですよ。

Concurrent Clean : 中置演算子とsyntax

http://d.hatena.ne.jp/bellbind/20070519/1179564014 Haskellはそうだったと思いますけど(詳しくない)、Cleanは、syntax的には関数と演算子の区別がつかないのですよ。 (startWith) infix 9 :: !String !String -> Bool Start = "abcdefg" startWith "abc"…

ノート

http://deztec.jp/design/07/05/15_education.html 私のノートはぐちゃぐちゃですが何か? ノートを一所懸命に教科書のようにしようとしている人を褒める人ってよく見かけるのですけど理由がよくわからないです。教科書でいいじゃん。 ノートは教科書じゃな…

Re: 正規表現にマッチする例 http://www.kmonos.net/wlog/73.html#_1543070517

'a*'は空文字列にもマッチするような気がするのですが、空文字列が生成されないような気がします。

私の出身大学なんて

出欠なんて対してとっていなかったような気がするなぁ。 出欠は「救済措置」ですといっている人もいたし。

Re: 技術の盗み方?

[id:lethevert:20070514:p2] なんか、ただの反論のための反論のように受け取る人もいるのかなと思ったので(まあ、そう受け取られても何の害もないですけど)、補足しておこうかなと。 リンク先の話は、先輩からいかに上手く知識を教えてもらうかというテク…

5月に入ってから、上海B株指数が爆上がりしてる

けど、なんで? http://yahoo.searchina.ne.jp/data/chart.cgi?span=90&asi=0&code=SSEB&market=SS

問題 : 文字列処理

長い文字列から、繰り返し出現している部分文字列のうち、もっとも長いものを見つける、効率的なやり方を考えよ。

Concurrent Clean : CGI : RE: POSTしたときに、CGIの応答が完了しない

[id:lethevert:20070513:p1]の件に付いて、凡ミスだったことにあのあと気づいた。 POSTのリクエストを読み込む関数は作ってあったものの、それを呼び出していなかったので、標準入力を全く読んでいなかった。 しかし、それにしても、現象から原因を探ること…

技術の盗み方?

http://www.geekpage.jp/blog/?id=2007/5/7 こういう話って就職するとごまんと聞くけれど、あさっての方向を向いているようにしか感じないんだよね。なんでだろ? やる気を見せる? やる気もいいけど、そんなのを見せている暇があったら何かできることをやっ…

Http Status Code

http://www.studyinghttp.net/status_code

Concurrent Clean : CGI : POSTしたときに、CGIの応答が完了しない

POSTで投げたときに、CGIの応答が完了しないで、タイムアウトするような動きをする。 場合によっては、ページが完全に描画されないこともある。 - telnetで確認してみると、どうも、チャンク通信で1つめのチャンクが終わった所で、後続のチャンクが送信され…

SQL

SQLにletやlet recに相当する構文があることを知りました。 (この辺とか参考に http://www.atmarkit.co.jp/fnetwork/tokusyuu/01sql99/sql99_1b.html) letはWITHを使って書きます。 WITH tmp1 AS ( SELECT a1, a2, SUM(a3) s3 FROM tbla GROUP BY a1, a2 )…

Erlangについて一言言いたくなったが

やめておく。 やっぱり書いとく。 Erlangって、プログラミング言語としての面白みってあんまりないような気がしますよね。(一部の人からはエキセントリックな文法に見えるかもしれないですけど) どちらかというと、あれは、処理系が面白い言語なんじゃない…

CGI : url-encode : mod_rewrite : スラッシュ

昨日([id:lethevert:20070508:p3])の件だけど、スラッシュが入っているとダメみたい。 もう少し検討する。 - スラッシュはだめだった。 http://localhost:8090/view/sla%2Fshしかし、はてなやシャープはOKだった。 http://localhost:8090/view/ques%3Ftion…

スタイルシート

書き方を間違えていただけでした

COBOL: 雑感

私はCOBOLはほとんど書いていないのですが、周囲には結構書いている人がいて、まあ、なんというかですが、雑感です。 よくわからないでいうのもなんですが、COBOLでプログラミングする場合って、シーケンシャルサーチ以外の選択肢を検討することってほとんど…

CGI: url-encode : mod_rewrite

CleanでCGIを作っているのだけれど、あるURLを入力すると、400 Bad Requestになってしまって接続できないという現象がおきて困っている。 どうも、mod_rewriteを経由するとおこる現象のようで、書き換え後のURLを直接入力すると、エラーはおこらない。 問題…

CleanやHaskellがものすごく柔軟な記法を実現できている理由

って、強い型付けと型推論のおかげかな?

trie

trieって、retrievalから来てたのか。

Concurrent Clean : 型エラーに悩む

もう自分の書いている型が正しいのかどうか全く自信がない。 Cleanは、対話環境がない上に、一意型の関係を正しく指定しないといけないので、複雑な関数の型を正しく書くのは至難だ。 まあ、例えば、こんな型エラーになるのですよ。 Compiling Controller Ty…

Concurrent Clean : 誤報 value restrictionというやつか

次のプログラムが型エラーになった。これは、value restrictionというやつではないか? Start = f id 1 "a" id a = a f :: (a -> a) Int String -> (Int, String) f g i s = (g i, g s) Haskellにはvalue restrictionはないと聞いていたので、Cleanもそうな…

Concurrent Clean : シノニム型と全称量化変数

うーむ。微妙だ。 ::Id :== A.a: a -> a f :: Id Int String -> (Int, String) f g i s = (g i, g s) は型エラー。どうも、'A.a:'が認識されていないような雰囲気。 ::Id a :== a -> a f :: (A.a: Id a) Int String -> (Int, String) f g i s = (g i, g s) …

Concurrent Clean : やっと動いた。

全称量化変数の使い方が、やっと飲み込めてきた。でも、まだ怪しいところがあるけれど。 とりあえず、mappingを mapTest :: (A.i: *MCGI i) (A.i: MModel i) MView -> *MRes mapTest cgi model view = cgi model mTest1 \m1 = model mTest2 \m2 = view [vTes…

Concurrent Clean : モデルとビューの関連付け

一意型を含んだ関数をモナドで再構成する方法としては、[id:nobsun:20060907:monadicIO]で説明されている方法があるのだけれど、これはモデルの側の記述が自然にならないのでちょっと嫌。(最大の原因は、シノニム型を型クラスのインスタンスとして宣言でき…

Concurrent Clean : PassFail

[id:lethevert:20061126:p2]で導入したPassFailだけれど、'!*Handle -> (!PassFail Info Error, !*Handle)'という組合せで使うことが多くて、かつこれをモナドで使うことを考えて、 ::PassFail u e i = (Pass) infix 0 !u !i | (Fail) infix 0 !u !e という…

Concurrent Clean : do記法

エラーハンドリングでcase文を使うことの繁雑さを解消したい。 func u = with u do Pass a <- funcPassOrFail 123 catch e = return e b <- process a return (a,b) finally _ <- close と書くと、 func u = `finally0 (`0 u) where `0 u # (`r0,u) = funcPa…

そういうのがあったら

参加してみたいですね。 cf. [id:yoriyuki:20070505:p1] 最近、オフラインでもN/Wを広げたいと思っているので。

Concurrent Clean : モナドは無理

結局、望むような記法を可能にして、かつ、モナドにすることは無理らしい。 - 他にも、一意型をモナドに含ませようとすると、微妙な問題が起きることに気づいた。 や、これはもともと知っていたのだけれど、再確認したという方が正しい。

Concurrent Clean : 別のアイデア

わざわざモナドとして定式化する必要はなかったかもしれない。 というのは、これを使いたい局面は非常に限られているので、グローバルな整合性を取る必要なんてなくて、ローカルに定義してやればよい。 mapping cgi bind return = cgi bind model1 \m1 = bin…