F #: всегда «неожиданно», когда «ключевое слово» - PullRequest
8 голосов
/ 05 декабря 2009

Компилятор VS2010 Beta 2 F # всегда жалуется на то, что я использовал ключевое слово when, даже когда используется скопированный код, который должен работать, например, любой из этих фрагментов . Например, это ошибка, которую я получаю при попытке выполнить очень тривиальное выражение:

"Ошибка FS0010: неожиданное ключевое слово" когда "в выражении. Ожидается" -> "или другой токен."

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

Ответы [ 2 ]

11 голосов
/ 05 декабря 2009

Вы хотите

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

Синтаксис «short» с «когда» был удален некоторое время назад. См

http://blogs.msdn.com/dsyme/archive/2008/08/29/detailed-release-notes-for-the-f-september-2008-ctp-release.aspx

и найдите «компактные выражения последовательности» в этом документе.

7 голосов
/ 05 декабря 2009

Вы должны использовать ключевое слово yield сейчас. Вот так:

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