2003-12-01 (Mon)
_ DriverLoader
DriverLoaderなるものを 使って、Windows XP用のCentrinoの無線LANのドライバを使ったら、Linuxで無線LAN が使えるようになった。 これって商用なんだけど、Linux(=GPL)のドライバが商用っていうのはアリなんだろうか。 とりあえず、30日間試用してみるか。
freeで似たようなものもあるよう だけど、こっちはCentrino(というかWindowsのCentrinoのドライバが必要とするAPI?)は まだ対応してないみたい。
ちなみにWindows XP用のドライバは
http://vcl.vaio.sony.co.jp/download/PK-000237-02.html
から取得した。 「ソフトウェア使用許諾契約書」を見るかぎり、今回のような使い方をしても問題なさそうに 見えるけど、実際のところどうなのだろう。
2011-12-01 (Thu)
_ readFile/interact
コメントを参考に研究した結果、
readLines :: FilePath -> IO [String] readLines path = do h <- openFile path ReadMode cs <- hGetContents h return $ lines cs main = do paths <- getArgs liness <- sequence (map readLines paths)
は、readLinesのような定義をせずに
main = do paths <- getArgs lines <- concatMap lines `fmap` mapM readFile paths
と書けることがわかった。
readFileはRubyのFile.readのようなもので、pathを与えるとファイルのすべての 内容を文字列で返す(正確にはそういうアクションを返す。lazyなので読みこみは逐次必要になった時に起こる。)。
concatMapMみたいなのはないかなと思ったがrejectされていた。
また、interactという関数にString -> Stringという型の関数を与えると、標準入力を加工して標準出力に出力するような処理が簡単に書けるらしい。UNIXぽい。