compréhension de liste en F#

Je suis en train de faire quelques compréhension de liste en F#. Et j'ai trouvé cette.

let evens n =
    { for x in 1 .. n when x % 2 = 0 -> x }
print_any (evens 10)

let squarePoints n =
    { for x in 1 .. n
      for y in 1 .. n  -> x,y }
print_any (squarePoints 3)

La première fonctionne toujours ok, mais la deuxième est obsolète. La dernière (1.9.7.8) F# compilateur ne supporte pas ce style.

Après quelques recherche j'ai trouvé cela fonctionne

let vec1 = [1;2;3]
let vec2 = [4;5;6]
let products = [for x in vec1 do for y in vec2 do yield x*y]

Quelqu'un peut-il point pourquoi la syntaxe a changé? Merci.

InformationsquelleAutor Yin Zhu | 2009-12-11