let a = [1;2;3;]
for i in (a |> Seq.take 10) do Console.WriteLine(i)
for i in (a |> Seq.take 100) do Console.WriteLine(i)
最初の行は正常に機能しますが、2 行目でエラーが発生します:入力シーケンスの要素数が不十分です。
はい、100 個の要素はありません。それらは 3 つだけですが、なぜ 10 個が機能するのでしょうか。
やっぱりC#で動く
using System;
using System.Linq;
class P
{ static void Main() {
var p = new[] {1,2,3,4};
foreach(var i in p.Take(10).ToArray()) Console.WriteLine(i);
foreach(var i in p.Take(2).ToArray()) Console.WriteLine(i);
foreach(var i in p.Take(100).ToArray()) Console.WriteLine(i);
}}