Haskell

Chapter 2. Types and Functions

Real World Haskell をこれからちょっとずつ読んでいき,そのときのメモのようなものをここに残していきたいと思う. ツッコミ歓迎. 今日は Chapter 2. Chapter 2. Types and Functions type system strong types 暗黙の型変換(coercion)が行われない stat…

Haskell で json を扱う

JSON Schema が提案されたりして、ますます使う機会が増えてきた JSON。 Haskell では http://hackage.haskell.org/cgi-bin/hackage-scripts/package/json を使って JSON を扱うことができる。 そこで、http://delicious.com の hot list をとってくるサンプ…

HaXml で html をパース

Haskell Haxml モジュール サンプルコード - x76789の研究メモ を参考にして、http://qb6.2ch.net/_403/madakana.cgi を見て自分が規制されているかどうか表示するコードを書いた。 Parsec もそうだけど、コンビネータを使ったパーサって使い方が面白い。あ…

リダイレクトをたどる

Network.HTTP の練習がてらに。 http://hackage.haskell.org/packages/archive/HTTP/4000.0.5/doc/html/Network-HTTP.html 標準入力からURLのリストを受けとって、標準出力にそれぞれの最終的なリダイレクト先の URL を表示する。 module Main where import …

ファイルサイズの取得

元ネタ http://ja.doukaku.org/243/ module Main where import IO import System (getArgs) import Maybe (fromMaybe) getFileSize :: String -> IO (Maybe Integer) getFileSize path = catch (bracket (openFile path ReadMode) hClose (\h -> hFileSize h…

普通は Objective-C 形式に直すよね。。。

普通に考えれば Objective-C 風の宣言に直すよね。何やってんだ俺。 ということで、funcname のところと parse をちょっと修正。 http://codepad.org/sySF3JGQ それと codepad のアカウントを取ってみた。

Objective-C のメソッドをC言語風になおすパーザを Haskell の Parsec で書いた

Objective-C ではクラスからメソッド一覧を取得でき、メソッドの名前とエンコードされた引数の型を得ることができるそうだ。 http://journal.mycom.co.jp/column/objc/019/index.html エンコーディングの規則はこうなっている。 http://journal.mycom.co.jp/…

昨日のコードのちょっとした説明

クイックソート ここで使われてる面白い機能は「リストの内包表現 (list comprehension)」。実体は syntax sugar。 lt_x = [y | y <- xs, y < x] これは「リスト xs から x より小さい要素を選び、それを集めたリストを lt_x とする」という意味。 数学にお…

今まで関数型言語を敬遠してきたけど

ずっと手続き型言語を扱ってきたから見た目から全然違う関数型言語を敬遠してきたけど、以下のコード及びその意味を知って興味が湧いてきた。 qsort [] = [] qsort (x:xs) = qsort lt_x ++ [x] ++ qsort gteq_x where lt_x = [y | y <- xs, y < x] gteq_x = …