Haskell をちょっとだけ触ってみました☆
また (笑) Blosxom クローンを作ろうと思ったんだけど、前途多難そう"(ノ_・、)" 手元の GHC が 6.4.1 で Network.CGI がないんだもん(Ω_Ω)
とりあえず CGI までいかずに少しだけ (笑)
#!runghc import System.Directory import Data.Maybe import Text.Regex isMatch :: FilePath -> Bool isMatch path = isJust (matchRegex (mkRegex ".txt$") path) main = do list <- getDirectoryContents "." putStr $ unlines $ filter isMatch $ list
関数の呼びだしかたがそもそもわからなくてこまったへ(゜∇、°)
$ を使ってるけど意味がわかってない (笑) Unix のパイプみたいなものだと思うけど( ̄〜 ̄;)??
うえのはさらに isMatch なんて新しく関数を定義しなくても、無名関数をつくってしたみたいに書けるみたい
main = do list <- getDirectoryContents "." putStr $ unlines $ filter (\path -> isJust (matchRegex (mkRegex ".css$") path)) $ list
\ と -> でつくるみたい。簡単でちょっとかっこいい (笑)
Haskell の部分適用がカリー化のおかげで簡単なのはわかるけど、これって Scheme でいえば pa$ 相当だよね。cut みたいに引数の位置を指定するのはどうしたらいいのかなー(・_・?)
isMatch path = isJust $ matchRegex reg path where reg = mkRegex ".txt$"
こっちのほうがスマートかなぁ