Какая защита от "Seq" с "seq"?
Я переживаю, когда не знаю, когда можно использовать "Seq", "seq" . Можете ли вы сказать мне, какие есть отклонения?
Это мой код Почему не использовать "seq"?
let s = ResizeArray<float>()
s.Add(1.1)
s.Add(2.2)
s.Add(3.3)
s.Add(4.4)
s |> Seq.iter (fun x -> printfn("%f") x )
2 ответа
Seq
это модуль, который содержит функции, которые работают с seq
ценности:
Seq.map string [ 1; 2 ]
Seq.sum [ 1; 2 ]
seq
это имя типа:
let f1 (xs : seq<int>) = ()
let f2 (xs : int seq) = ()
seq
также функция, которая преобразует что-то вроде списка в тип seq
:
seq [ 1; 2 ]
seq { ... }
это вычислительное выражение:
seq { yield 1; yield 2 }
Вы используете Seq в верхнем регистре во всех случаях, кроме аннотации типа. Например:
let (x:seq<int>) =
[1..10]
|> Seq.map (fun t -> t + 1)
Изменить: Пожалуйста, обратитесь к рекомендованному ответу, так как мой ответ неполон.