記号・・・
List.map (Float.to_int << ( ** ) 2.0 << Float.of_int) [0..10];; [ for x in 0..10 -> 2.0 ** (Float.of_int x) |> Float.to_int ];;http://d.hatena.ne.jp/Nobuhisa/20080707/1215424638#c1215441149
いげ太さんに教えてもらったコードに見慣れない記号が含まれていたので、色々試してみて解析!
関係ないけど、演算子とかって非常にぐぐりづらいですよね。。
さて、まずは
- <<, >> (関数合成)
インタプリタで試していて、関数合成っぽいな〜と思ってぐぐってみたらいげ太さんの日記に漂着しました。笑
> let a = ( * ) 2 << ( + ) 1;; val a : (int -> int) > a 99;; val it : int = 200 > let b = ( * ) 2 >> ( + ) 1;; val b : (int -> int) > b 5;; val it : int = 11
- |>, <| (パイプライン)
これは比較的すぐ分かりました。
> 99 |> ( + ) 1 |> ( * ) 3;; val it : int = 300 > [1..10] |> List.map (( * ) 2);; val it : int list = [2; 4; 6; 8; 10; 12; 14; 16; 18; 20]
これも逆があるみたい
> ( + ) 1 <| 99;; val it : int = 100
今日はちょっとこの辺で・・・(現実逃避終了