2011-04-25から1日間の記事一覧

学習の記録−4

F#

ボクシング 変数を無理やりvariant型に倒すイメージ。関数boxを使う。元の型での演算はできなくなる。応用例としては型調べる関数作るのに使うっぽい。型名を隠した操作をする時に活躍。 > let x = box 42;; val x : obj = 42 > unbox<int> x;; val it : int = 42</int>…

学習の記録−3

F#

再帰はなるべく末尾再帰(引数が大きくなっても展開式の大きさが一定になるような再帰)を使って書く。 //普通の再帰 let rec fact n = if n > 1 then n * fact (n - 1) else n;; //末尾再帰 let fact_tailrec n = let rec fact n res = if n > 1 then fact …

学習の記録−2

F#

F#では二進数を書くときは0bを頭につける。 > 0b111;; val it : int = 7 符号なし8bitの整数を表すbyte型もある。使いたい時は語尾にuyをつける。 > 0b0001uy;; val it : byte = 1uy > 5uy;; val it : byte = 5uy ビットごとの演算は &&&:AND |||:OR ^^^:XOR…