J'essaye de créer une carte récursive en F #.Référence de la carte récursive en F #
type RecMap = Map<string, RecMap>
ne fonctionnera pas, à cause de la référence cyclique RecMap
. Mais pourquoi est-il que ni
type RecMap = Map<string, RecMap ref>
ni
type RecMap = (Map<string, RecMap>) ref
œuvres? Je pensais que faire le type de valeur de la carte dans un RecMap ref
aurait dû faire l'affaire.
Contourner le problème en réécrivant RecMap
en un membre travaille de type d'enregistrement,
type RecMap = { r : Map<string, RecMap> }
Les enregistrements sont les types de référence, tout comme ref
, mais pourquoi ne fonctionnent pas refs dans les définitions récursives, lorsque les enregistrements font?
Aka, abréviation de type - http://msdn.microsoft.com/en-us/library/dd233246.aspx –
@Tony - merci, je J'ai mis à jour ma réponse pour être plus précis. – kvb