discriminés Considérez quecontrainte de type dans une Union
type Foo =
| I of int
| S of string
let test = [ I(5); I(9); I(7)]
Il fonctionne, mais maintenant je veux « test » être de type Foo aussi et encore une liste de I ou S. Par ex
let test = L([ I(5); I(9); I(42) ]) //works!
let test2 = L([ I(5); I(9); S("stuff") ]) //type error
let test3 = L([ I(5); I(9); L([]) ]) //type error
J'essaie que ..
type Foo =
| I of int
| S of string
| L of 'T list when 'T :> Foo
Je sais que cela ne fonctionne évidemment pas. C'était juste quelque chose de naturel pour moi d'écrire.
Merci beaucoup d'avoir aidé !!
Oui et en fait c'est ce que j'ai fait. Merci de l'avoir signalé! Mais la question était plus sur si oui ou non le système de type F # pourrait le gérer. – Stringer