2009-12-04 71 views
8

VS2010 Beta 2 F#编译器总是抱怨我关于when关键字的使用,即使使用应该可以工作的复制粘贴代码(例如these snippets)。举例来说,这是试图执行一个非常平凡的表情时,我得到的错误:F#:关键字时总是“意外”

“错误FS0010:意外的关键字‘当’的表达需要‘ - >’或其他标记。”

[for i in 1..50 when i < 10 -> i] 
---------------^^^^ 

回答

7

现在应该使用yield关键字。这样的:

[for i in 1 .. 50 do if i < 10 then yield i] 
+0

谢谢,这是有效的。但'何时'有什么问题? – Martin 2009-12-04 22:48:59

+4

根据F#关键字引用(http://msdn.microsoft.com/en-us/library/dd233249(VS.100).aspx),when仅用于模式匹配和泛型类型约束。自从您引用的文章出来以后,可能是该语言发生了变化? – itowlson 2009-12-04 22:52:31

+0

我只是建议你在旧博客文章中使用代码片段时要小心一点(可能发生了小的语言更改)。 – Stringer 2009-12-04 23:04:55