2010-03-01から1ヶ月間の記事一覧

Real World Haskell 3章 練習問題: GrahamScanアルゴリズムによる凸包の導出

割とHaskellっぽく書けたと思う。 import Data.List data (Num a) => Point a = Point { x :: a, y :: a } deriving (Eq, Show) (.+) :: (Num a, Ord a) => Point a -> Point a -> Point a a .+ b = Point (x a + x b) (y a + y b) (.-) :: (Num a, Ord a) =…

ブログ名を変えた

名前のバッティングが酷かったのでブログ名を変えてみた (参考: google:なんとなく日記)。 そもそも日記どころか月1回更新すら怪しいし,しかも内容は全然日記じゃないじゃん,けどパッと見の見た目変えたくないなーということで「目記」。読み方は謎。「に…

なんとなく

デザイン変えてみた。

let式とlet宣言の微妙な差異

ちょっとだけハマったのでメモ。let式内で複数の変数を定義するとき,同時に定義した他の変数は参照出来ない,というお話。 varの場合,同時に定義した変数xの値を参照することができる。 var x = "a", y = x + "b"; alert(y); // => "ab" let"宣言"の場合も…

JavaScriptでParsecっぽいものを作った

車輪の再発明してみた。Rhinoでしか動作確認してないけど多くのブラウザで動作するんじゃないかな。jsparsec.js この辺参考にしてます→inforno :: Javascriptでパーサジェネレータを書いてみた 関数名は基本的にParsecのものと合わせています。Parsec.Combin…

JavaScriptでcurry化

一昔前に流行ったネタでいろんな人がコードを書いていたと思うんだけど,3引数以上の関数をきちんとcurry化できる例 (「「「「関数を返す関数」を返す関数」を返す関数」…」に変換する) を見つけられなかったので,自分で書いてみた。 function curry(fun) {…

ParsecでJSONパーサ

自分の中で何度か目のHaskellブーム到来。 パーサコンビネータ読みやすい!カッコイイ!Parsecすごい!ってなことでなんかパースする題材は無いか探し回っていた結果,JSONの仕様書が目に入ったので斜め読みしつつ実装してみました。小数の実装が怪しいけど…