p_tan's blog

勉強日記です。ツッコミ大歓迎

2011-04-01から1ヶ月間の記事一覧

シーケンスの要素をグループに分ける Seq.groupBy #fsharp

F#

Seq.groupByはseq中の要素に対応する整数値でseqの要素をグループに分ける。 seq {1..100} |> Seq.groupBy (fun x -> x % 2) // seq [(1, seq [1; 3; 5; 7; ...]); (0, seq [2; 4; 6; 8; ...])] 使用例 // シーケンスをn個毎のサブシーケンスに分ける let sp…

シーケンスの前後の値を見ながらの処理 Seq.windowed [追記] #fsharp

F#

Seq.windowedはseq中の隣接するn要素の配列のseqを返す関数。 > Seq.windowed 3 [1..5];; val it : seq<int []> = seq [[|1; 2; 3|]; [|2; 3; 4|]; [|3; 4; 5|]] 例えば数値のシーケンスの極大値のみをselectする処理は以下のように書ける。 > let SelectLocalMaxs (</int>…