Bonjour,
Je cherche à écrire une fonction qui retourne le dernier élément d'une liste en OCaml, d'après le premier exercice de cette page.
J'aboutis au même que celui proposé en solution, mais j'ai tout de même une erreur. Voici le code :
1 2 3 4 5 | (** Returns a list's last element *) let rec last l = function | [] -> None (* Empty list, no last element *) | [e] -> Some e (* One-element list, return it *) | _ :: r -> last r;; (* Longer list, recursive call *) |
Et voici l'erreur que je me prends dans la figure :
1 2 | Error: Expression has type 'a list -> 'a option but an expression was expected of type 'a option |
ce qui me laisse penser que l'appel récursif à ma fonction last
n'est pas résolu, mais je ne vois pas pourquoi…
EDIT : J'ai trouvé mon erreur. Il ne fallait pas que je spécifie d'argument à la fonction last
. En revanche, je n'ai aucune idée pourquoi mon code ne fonctionnait pas…
+0
-0