我正在阅读F#上一个非常膨胀的wikibook。在section on List Comprehensions的底部,它解释了可以使用箭头运算符而不是yield / yield!关键字。但它注意到这已被弃用。我想知道为什么?
答案 0 :(得分:8)
据我所知,它并没有被弃用 - 至少MSDN上的Visual F# 2010 documentation仍在使用它。不推荐使用的是其他一些语法,其中包括->
和->>
,而不是简单的for
表达式。特别是,请参阅this post by Don Syme - quote:
除紧凑序列表达式外,
>
和->>
现已弃用。现在不推荐使用两个简写
->
和->>
,但序列表达式简称:seq { for x in c -> f(x) }
除外。在所有其他序列表达式中,使用全名yield
和yield!
。
答案 1 :(得分:2)
我认为删除大部分用途 - >和 - >>是为了与C#保持一致。就个人而言,我认为这是一个错误。
Haskell理解之所以强大,部分原因在于它们如此简洁,就像设置符号一样 - F#语法最终会使事情变得难以理解,因为任何相对复杂的东西都会被分割成多行。