F# で LINQ 入門 Take TakeWhile
Take はシーケンスの頭から指定した要素数のデータを取得します。
open System.Linq let age = seq { 10..50 } // なんとかきゅーぶ age.Take(3) |> Seq.iter (printfn "%d歳は小学生です。まったく、小学生は最高だぜ!") // 刺されるのではないか age.TakeWhile(fun a -> a < 24) |> Seq.iter (printfn "%d日は通常の値段でケーキを販売しています。") // Take と合わせて間を取得する let jk = age.SkipWhile(fun a -> a < 16).TakeWhile(fun a -> a <= 18) jk |> Seq.iter (printfn "マックで%d歳の女子高生がF#以下略")
実行結果
10歳は小学生です。まったく、小学生は最高だぜ! 11歳は小学生です。まったく、小学生は最高だぜ! 12歳は小学生です。まったく、小学生は最高だぜ! 10日は通常の値段でケーキを販売しています。 11日は通常の値段でケーキを販売しています。 12日は通常の値段でケーキを販売しています。 13日は通常の値段でケーキを販売しています。 14日は通常の値段でケーキを販売しています。 15日は通常の値段でケーキを販売しています。 16日は通常の値段でケーキを販売しています。 17日は通常の値段でケーキを販売しています。 18日は通常の値段でケーキを販売しています。 19日は通常の値段でケーキを販売しています。 20日は通常の値段でケーキを販売しています。 21日は通常の値段でケーキを販売しています。 22日は通常の値段でケーキを販売しています。 23日は通常の値段でケーキを販売しています。 マックで16歳の女子高生がF#以下略 マックで17歳の女子高生がF#以下略 マックで18歳の女子高生がF#以下略 val age : seq<int> val jk : seq<int>
シーケンスの要素数を超える数を指定するとどうなるのっと
// 要素数をこえる場合 jk.Take(10)
実行結果
val it : seq<int> = seq [16; 17; 18]