haskell-ja > Archives > 2009/07/19

2009/07/19 00:01:30 UTCikegami
#
"I have a proof of this, but the margin isn't large enough to contain it." ってなんの真似だ
#
↑Acme.Time (now)
2009/07/19 09:57:08 UTCnwn
#
first-class-patterns: http://hackage.haskell.org/package/first-class-patterns-0.1.0
#
scheme の match-lambda を haskell に移植したら、という感じのライブラリ
#
とりあえず signum をポイントフリーで書いてみた
#
let sn = flip match (is (<0) ->> -1 ||| is (==0) ->> 0 ||| __ ->> 1)
#
実装に型レが使われてるのも面白い
#
型レといえば: http://hackage.haskell.org/package/xformat
#
型安全な printf, scanf, (それぞれ showf, readf という名前がついている)
#
oleg さんの printf もいいけど個人的には TH 使ってないぶんこっちのほうが好き
#
滾ったので連投してみた
2009/07/19 10:25:19 UTCikegami
#
ほほう
#
しかし、型レにつきものの、ものすごいタプルがでてきてしまう
#
たとえば、Text.XFormat.Show のクラス Format の instance 参照
#
どちらをよしとするかは、審美眼だにゃー
#
ちなみに、わたしはどちらもすごくていいなと思います
2009/07/19 11:16:22 UTCnwn
#
むー、たしかにあのインスタンスはちょっとひいてしまう
#
でもいちおう (%) っていうコンビネータがあるから、タプルのインスタンスは別にいらないような気もしている
#
Prelude Text.XFormat.Show> showf (Int, "%") 40
"40%"
Prelude Text.XFormat.Show> showf (Int % "%") 40
"40%"
#
Int % String % ... とつなげていけばタプルでできることは (%) を使ってもできるようになっている
2009/07/19 11:26:06 UTCnwn
#
インスタンスがえらいことになっているのは、タプルが渡せてもいいんじゃね? というデザイン上の判断だと思われる
#
でも大っきいタプルってほとんど使わないなー
#
この間 (,,,) を使った気がするけどそれは data を作るのがめんどくさかっただけだし
#
data になくってタプルにある利点ってなんだろ