F#: всегда "неожиданно", когда "ключевое слово"

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

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

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

2 ответа

Решение

Ты хочешь

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

"Короткий" синтаксис с "когда" был удален некоторое время назад. Увидеть

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

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

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

[for i in 1 .. 50 do if i < 10 then yield i]
Другие вопросы по тегам