2010-12-19から1日間の記事一覧

シーケンスとリストの違い

F#

動かしてみてよくわかりました。 シーケンス let seq1 = seq { for i in 1..3 do printfn "generating... %d" i yield i }let seq2 = seq1 |> Seq.map (fun x -> printfn "1st map %d" x ; x) |> Seq.map (fun x -> printfn "2nd map %d" x;x)let seq3 = Seq…

コード引用符を使ったプロパティ名の取得

F#

コード引用符を使うことで式を取得できます。C#のExpression>で受けるのと同じようなものでしょうか。 なんかおもしろいことができそうな気がします。Personレコードをのプロパティを指定してその名前を取得するコードを書いてみました。open Microsoft.FSha…

レコード型とプロトタイプ

F#

レコード型、毎回すべてのプロパティを設定するのは大変なのでデフォルト値を設定したプロトタイプのインスタンスをあらかじめ作っておくといいかもしれない。 毎回 with を使って作成することになるので型が明示されてわかりやすいというおまけもあります。…

測量単位

F#

F#の中でわかりやすく、それでいてクールな機能が測量単位というものです。メートルとかキログラムとか好きな単位を作成して指定できます。open NUnit.Framework[<Measure>] type m[<Measure>] type kglet calculateBMI (height : float<m>) (weight : float<kg>) = weight / (height </kg></m></measure></measure>…