2009-12-04 38 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