Метода Firstordefault В F#
Как написать запрос FirstOrDefault Linq в F#? Могу ли я использовать linq to sql в F# полностью?
4 ответов
обратите внимание, что более идиоматический подход в F#, вероятно, будет использовать что-то вроде Seq.tryFind
вместо того, чтобы использовать операторы LINQ, хотя это не падение замены, так как он возвращает значение опции.
потому что Seq
модуль уже есть типа seq<'a> -> 'a
, Я бы определил функцию tryHead
с подписью seq<'a> -> option<'a>
:
module Seq =
let tryHead (ls:seq<'a>) : option<'a> = ls |> Seq.tryPick Some
используя его как:
[1; 2; 3] |> Seq.tryHead
Что касается LINQ-to-SQL, см.
о FirstOrDefault
, это просто расширение метод на System.Linq
пространство имен:
let l = [1;2;3]
open System.Linq
let r = l.FirstOrDefault()
кроме того, вы можете легко определить свой собственный метода firstordefault:
let firstordefault list =
match list with
| head :: tail -> head
| [] -> 0 // some default value
пример:
let exampleList = [ 1; 2; 3 ]
использование F# interactive,
firstordefault exampleList;;
val it : int = 1