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

Webデザイン

ところで、画面表示幅をCSSで固定しておきながら、サイドバーを左に配置するのは止めてほしい。 画面幅が狭い環境で見ると、本文の右側が切れるのです。

Re: h-index

http://d.hatena.ne.jp/odz/20070720/1184941234 Haskellのコードの方が、元のRubyのコードよりわかりやすい気がするけど。

Windowsのエラーコードを検索する

http://www.atmarkit.co.jp/fwin2k/win2ktips/644err/err.html 便利なツールを見つけた。

Haskell : arrow

http://www.aya.or.jp/~takuo/arrow_for_2ch/arrow_for_2ch.pdf これは分かりやすいかもな。

RDBとO/Rマッパー

O/Rマッパーが好きな人の中で、プログラム中にSQLを書くべきでないという主張のかたを見かけるのだけれども、よくわからない。(仕事でそういう人にあったこともある。) 私は、O/Rマッパーはあまり好きでないし、プログラム中にSQLを書くのもそんなに悪くな…

Concurrent Clean : Re: 小町算

[id:lethevert:20070718:p2] k.inabaさんのアプローチhttp://www.kmonos.net/wlog/75.html#_1916070718で書いてみた。 module Main2 extension for-notation import StdBase, OptEnv, StdUtil Start w # a = [1,2,3,4,5,6,7,8,9] |> number |> flatmap term …

Concurrent Clean : for-notation : except pattern

朝の時点で動くようになっていた。 先ほど、チェックインした。 - こんな感じで書ける。 Start w # (f,w) = stdio w (n,f) = for f fwrites "how many? " ? True,i <- freadi fwrites (toString ['a' \\ _ <- [1..i]]) $> newline return 1 except _ _ retur…

Concurrent Clean : 小町算

一応作ってみたが、有理数演算になっていないのでだめだった。実行時間は1秒程度らしい。 module Main extension for-notation import StdBase, OptEnv import StdDebug Start w # a = problems 8 |> (\a = zip2 a $ map calc a) |> filter (\(_,x) = x == …

震度分布がおかしくない?

http://typhoon.yahoo.co.jp/weather/jp/earthquake/2007-07-16-23-18.html どうしてこういう分布になるんだろう?

Concurrent Clean : with

withはcaseやガードと組み合わせることで効果を生み出す。 まず、caseとの組み合わせ。 f a # a = add1 a //(1) = case a of 0 = add1 0 //(2) a = add1 a //(3) に対して、次のように書くと、(3)の所だけadd1が有効になる f a # a = add1 a //(1) = case a …

Concurrent Clean : letとwhere,with

次の例は、(2)だけadd1が有効になる。whereをwithに置き換えても同じ。 k a = let a1 = add1 a //(1) a2 = add1 a1 //(2) where add1 = (+) 1 in add1 a2 //(3) これは、(1),(2),(3)のすべてでadd1が有効になる。withをwhereに置き換えても同じ。 k a = let …

Concurrent Clean : whereとwith

withをwhereとは別の文法要素として用意している理由がよくわからない。whereを使えるところは、すべてwithでも同じ意味になる気がするのだけれど。

Concurrent Clean : 識別子 `1, _1

`1という識別子が関数に使えることは、[id:lethevert:20070225:p3]に書いたが、変数には使えないらしいことに気づいた。どうも、これは大文字識別子として認識されているのか? 関連して、_1も変数名には使えないみたい。 http://sky.zero.ad.jp/~zaa54437/p…

Concurrent Clean : for-notation : 隠れ変数へのアクセス

for-notationの際に、forの対象となっている隠れた変数が1つあって、これへの明示的アクセスをしたいときにどう書けばいいかということを考えている。また、変換後のプログラムコードの中で、どういう変数名を当てればよいかということも同時に考えている。…

Concurrent Clean : withとスコープ

次のプログラムは正しい l a # b = a + 1 c = f a with f z = z + b = c with以前のlet-before式で定義された変数にアクセスできている。

Concurrent Clean : for-notation : 脱出パターン

次のようなプログラムを proc f = for f ?1 True,i <- freadi fwritei i return Just i except1 _ _ return Nothing 次のように変換する。 proc f = case f of for = case freadi for of (True,i,for) # for = fwritei i for = (Just i,for) (for`0,for`1,fo…

Concurrent Clean : for-notation

できたところまでチェックイン。 しかし、脱出パターンを作るには、今の構造のままではちょっと難しいな。すこし書き換えが必要になりそう。 - 想像以上にむずいぞ。 これにさらにforのネストを加えるつもりなのだけど・・・

コーディングスタイル

http://gihyo.jp/dev/serial/01/scene/0002 自分のコーディングスタイルについてあれこれ考えることは(特に新しい言語を始めたときは)よくあるけれど、人のコーディングスタイルに口を突っ込むほど非生産的なことはないと思うのだよね。コーディングスタイ…

はてなスター

なんか、各所で盛り上がっているみたいだけど、それなりに面白く眺めさせてもらっております。(まあ、こういうわけの分からないお祭りがときどき起きるのもはてなかなという気もするけどね。それに対してよいとも悪いとも思っていないけど) ところで、私が…

ソフトウェア開発チーム

ソフトウェア開発っていうのは、プログラマだけでやるんじゃないんだよね。つまりテスタが必要不可欠なのですよ。 それから、こういう種類の意志決定に民主的プロセスをいちいち導入するのはデメリットしかないので、司令塔として1人のプログラマをアーキテ…

Concurrent Clean: for-notation

こんな感じ。 module Main extension for-notation import StdBase, OptBase, OptFile Start w # (f,w) = stdio w f = for f fwrites "how many? " ok,i <- freadi | not ok = return fwrites (toString ['a' \\ _ <- [1..i]]) $> newline return (_,w) = fc…

Concurrent Clean: 局所関数定義

こういうのはありらしい。へー。 Start w # (f,w) = stdio w f = let foo True f # f = fwrites "Hello " f f = fwrites "World\n" f = f foo False f = f bar n f | n > 0 = fwrites "greater\n" f | n == 0 = fwrites "equal\n" f = fwrites "less\n" f in…

はてなスター

確かにIEじゃ消えてない。 - まあ、いいや。少なくとも私の目に触れなければ。

Concurrent Clean : for-notation : 内包表記

あ、内包表記に - \\ をみつけたら、そこから先は探さないようにした。内包表記は左辺には来ないから。

Concurrent Clean : for-notation : ガード

ガードがあったら、何も変換しないようにした。 しかし、返値を返そうとしても、returnがないと値がとれないぞ。

Concurrent Clean : for-notation

とりあえずできた所までチェックインした。

プロジェクトマネジメント

http://coin.nikkeibp.co.jp/coin/nc/semi/0707c/ こんなん聞いてもなんともならない気がするけどなー。 もっとも私は受託開発というのをやったことがないので、実際の所はどうなのか分からないのですが。 なんか、他人のシステムを一時的に雇われた人が責任…

Concurrent Clean : 変数名が短くなるわけ

どうも、Cleanでプログラムしていると、変数の名前が短くなる傾向がある。 これはどういうことかと考えていたのだけれど、これはこれでわかりやすさを考えているのかなと思うことがあったので、メモ。 - Cleanでは、関数の引数にパターンマッチが使えるのだ…

昼ごろ全然すべてのデータが消えたみたいになったなと思っていたら、

なんか、タイトルの横に変なアイコンが出るようになったな。 - なんだ、この中途半端な機能は? - うーん。この機能、非表示にしたいんだけど、設定ができないよ。 - CSSをいじって消した。こんな感じ。 #main div.section .hatena-star-comment-container, …

Concurrent Clean : for-notation

とりあえず、こんなのが動くようになった。 module Main extension for-notation import StdBase, OptBase, OptFile Start w # (f,w) = stdio w f = for f fwrites "one for all" $> newline fwrites "all for one" $> newline (_,w) = fclose f w = w - こ…