私は F# を学び始めたばかりで、テーブルから最初のレコードを取得する関数を試してみようと思った型推論に感銘を受けました (クエリ式、Linq スタイルを使用):
let getfirst data =
let result = query { for n in data do take 1 }
result |> Seq.head
これは機能します。タイプはIQueryable<'a> -> 'a
です。
しかし、なぜこのバージョンが機能しないのでしょうか?
let getfirst2 data =
query { for n in data do head }
前回と同じようfor n in data do head
にスカラーを与えるべきではありませんか? 'a
2 番目のバージョンが機能しない理由と、Seq.head を使用せずに機能させる方法を誰かが説明できますか?