2010-09-29 29 views
1

Je veux écrire une fonction qui vérifie l'égalité des listes dans SML par exemple: [1,2,3] = [1,2,3]; val it = true: boolVérification de l'égalité dans les listes dans SML

Donc, au lieu d'écrire le tout, je veux faire une fonction qui prend deux listes prédéfinies, et les comparer, de sorte que si list01 = [1,2,3] et list09 = [1,2,3] puis fun égal (list01, list09); retournera -val = true: bool;

Thanx à l'avance pour des idées/conseils et aider :)

+0

Que voulez-vous dire par « écrire tout ça »? Ecrire 'equal (list01, list09)' est plus long que d'écrire 'list01 = list09', alors quel est le" truc "que vous voulez éviter d'écrire? – sepp2k

+0

j'ai supposé qu'il serait plus facile de créer une fonction compare ([list01, list09]); que réellement comparer les deux listes manuellement, si elles étaient très! longue. – user457142

Répondre

1

Voici un échantillon non vérifié:

fun compare ([], []) = true # both empty 
    | compare (x::xs, y::ys) = (x = y) and compare(xs,ys) 
    | compare (_, _) = false # different lengths 
6

Vous semblez être conscient que = travaux sur les listes, alors (comme je l'ai déjà dit dans mon commentaire) Je ne vois pas pourquoi vous devez définir une fonction equal.

Cela étant dit, vous pouvez simplement écrire:

fun equal (a, b) = (a = b);