F#中#seq和seq的区别
Difference between #seq and seq in F#
我想知道#seq 在 F# 交互中的含义 shell。
我有一个带有 2 个参数的 collect
函数,一个函数和一个序列,该函数应用于序列。
let rec collect f sq =
seq {
let a = Seq.item 0 sq
let sq1 = Seq.skip 1 sq
let ris = f a
yield! ris
yield! collect f sq1
}
当 shell 评估 collect
时,它返回以下签名
val collect: f: ('a -> #seq<'c>) -> sq: seq<'a> -> seq<'c>
在这种情况下,seq
之前的 #
是什么意思?
seq<'a>
是 IEnumerable<T>
的 F# 拼写
- 类型前的
#
是flexible type annotation。这允许您使用任何实现指定接口的类型。
我想知道#seq 在 F# 交互中的含义 shell。
我有一个带有 2 个参数的 collect
函数,一个函数和一个序列,该函数应用于序列。
let rec collect f sq =
seq {
let a = Seq.item 0 sq
let sq1 = Seq.skip 1 sq
let ris = f a
yield! ris
yield! collect f sq1
}
当 shell 评估 collect
时,它返回以下签名
val collect: f: ('a -> #seq<'c>) -> sq: seq<'a> -> seq<'c>
在这种情况下,seq
之前的 #
是什么意思?
seq<'a>
是IEnumerable<T>
的 F# 拼写
- 类型前的
#
是flexible type annotation。这允许您使用任何实现指定接口的类型。