Datatype events = enter of string * real | exit of string *real;
J'ai donc ce type de données et je dois écrire une fonction qui prend une liste d'événements en entrée et renvoie cette liste triée par la partie réelle des événements. J'ai essayé d'écrire certaines fonctions, mais je n'ai pas trouvé de bonnes idées?Liste de types de données SML standard
c'est le code i essayé:
val rec ordina = fn
[] => []
|v1::v2::l => if (#2(v2)) > (#2(v1))
then ordina (v1::l)
else oridna (v2::1);
Erreurs j'ai obtenu:
poly: erreur: Impossible de trouver un type d'enregistrement fixe. Trouvé près de # 2
poly: erreur: Impossible de trouver un type d'enregistrement fixe. Trouvé près # 2
Quelles fonctions avez-vous essayé d'écrire? Quelles erreurs avez-vous rencontrées? Si vous voulez de l'aide pour vos devoirs, alors vous devriez montrer vos efforts. –
J'ai posté le code que j'ai essayé d'utiliser. –
La macro '# 2' fonctionne sur les tuples, mais' Enter (s, r) 'et' Exit (s, r) 'ne sont pas directement des tuples. Vous devriez faire une fonction getter comme je le suggère dans ma réponse ci-dessous. Que vous utilisiez un pattern entièrement, comme je le suggère, ou que vous écrivez 'fun get _... (Entrez la paire) = # 2 paire | ... 'sont les deux options. –