F#
別にF#じゃなくてもよくって、 ファイルをバイナリ形式で読み込む 16バイトずつforでぐるぐる回して出力する この2点が満たされればたぶんRubyでもC++でも一向に構わない。 File.ReadAllBytes メソッド (System.IO)
F#のファイル実行について。 $ fsharpi hoge.fsx みたいな感じで実行すると結構時間がかかる。 インタラクティブモードに入ったあとに、#loadってやると より早くファイルを実行することができる。 $ fsharpi > #load "hoge.fsx";;
let a = [| 0; 0; 0; 0; 0; 0; 0; |] 配列 (F#)
let hoge = 'hoge' 同じ名前の別の変数を定義すること。OCaml由来。 両方の値に同じ名前を付けると、先に付けたほうの名前が「見えなくなる」というだけです。これを「シャドウイング(shadowing)」と言いますが、F#において、値が変わっているように見える…
// fetch 中で変数の値を書き換えているので副作用が発生する let fetch() = let ret = read16 mem pc pc <- pc + 2 ret let opr1, opr2 = fetch(), fetch() // このような書き方だと環境依存で実行順序が保証されない 副作用のある関数の結果を、上のような…
// 関数単体で呼び出して返り値を捨てるとThis expression should have type 'unit', but has type 'int'.って怒られる // パイプライン演算子|>を利用してignoreする // e.g. abc(2) => 2 |> abc // ignore(fetch())でも可 // find . -type f | xargs grep …
Convert.ToInt32 Method (String) (System) @shigemk2 string(8進数)→intですか?それは F# の機能ではなく.NETのライブラリを使います。 let y = System.Convert.ToInt32(x, 8) http://t.co/HYNFmqclWl— 七誌 (@7shi) 2014, 3月 3 > let x = System.Convert…
> sprintf "%o" (0o123456 >>> 3);; val it : string = "12345" > sprintf "%o" (0o123456 >>> 9);; val it : string = "123" > sprintf "%o" (0o123456 >>> 12);; val it : string = "12" > sprintf "%o" (0o123456 >>> 15);; val it : string = "1" 3bitで…
> printfn "%x" (0x48 <<< 8);; 4800 val it : unit = () > printfn "%x" (0x45 <<< 8);; 4500 val it : unit = () > printfn "%x" (0x45 >>> 8);; 0 val it : unit = () > printfn "%x" (0x4500 >>> 8);; 45 val it : unit = () > printfn "%x" (0x4500 <<<…
https://github.com/emacsmirror/fsharp-mode/tree/master/emacs README.mdの流れどおりにやってみたら、だいじょうぶだった。
printfn "Hello" let a = 1 printfn "a = %d" a printfn "Hello"