2009-12-04 10 views
8

Le compilateur VS2010 Beta 2 F # se plaint toujours de mon utilisation du mot-clé when, même lorsque j'utilise un code copié-collé censé fonctionner, par exemple these snippets. Par exemple, voici l'erreur que je reçois lorsque vous essayez d'exécuter une expression très trivial:F #: toujours "inattendu" lorsque "mot-clé"

« erreur FS0010: mot-clé inattendue « quand » dans l'expression Expected « -> » ou autre jeton.. »

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

Répondre

7

Vous devriez utiliser le mot-clé yield maintenant. Comme ça:

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

Merci, ça fonctionne. Mais qu'est-ce qui ne va pas avec 'quand'? – Martin

+4

Selon la référence de mot clé F # (http://msdn.microsoft.com/en-us/library/dd233249(VS.100).aspx), when est utilisé uniquement dans les correspondances de modèle et les contraintes de type générique. Peut-être un changement de langue depuis que l'article que vous avez cité est sorti? – itowlson

+0

Je peux juste vous conseiller d'être un peu prudent lorsque vous utilisez des extraits d'anciens billets de blog (des changements mineurs de langue ont pu se produire). – Stringer