Какая защита от "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)

Изменить: Пожалуйста, обратитесь к рекомендованному ответу, так как мой ответ неполон.

Другие вопросы по тегам