cat
- EntryPointというattributeをつけるとコマンドライン引数を受け取る関数として扱われる
- openでmodule(namespace)のopen
- (System.IO.File.Readlinesは環境が古くて無かったっぽい)
- オーバーロードされたメソッドを利用する時には型注釈必要。
open System let lines (name:string) = seq { use sr = new IO.StreamReader(name) while not sr.EndOfStream do yield sr.ReadLine() } let cat (name:string) = lines name |> Seq.iter (fun (x:string) -> Console.WriteLine x) [<EntryPoint>] let main (args:string[]) = args |> Seq.iter cat 0
$ fsc.exe cat.fs $ cat.exe cat.fs