[Ocaml] pb de programmation

Coralie -  
 CissWit -
Bonjour !

Je débute tout juste en Ocaml, et j'ai quelques soucis...
En effet, je voudrais écrire une fonction f: 'a list -> ('a*'a list) option qui renvoie un couple formé de la tête et de la queue de la liste si celle-ci n'est pas vide et la valeur None sinon.

Or, ce que j'ai fait ne marche pas...si vous pouviez me dire comment vous feriez...

Merci d'avance !!
A voir également:

1 réponse

CissWit
 
pauvre Coralie personne vient t'aider lol

Ben jsais pas si c'est trop tard ou pas .. mais bon si quelqu'un passe derrière..

Le truc c'est que on peut pas rendre une réponse de deux type différents..
ton "none" peut pas être un couple, donc du type " 'a * 'a list " et ta fonction est donc impossible.

Un truc possible, c'est d'utiliser des exceptions ou des failwith (en fait
les failwith ce sont des exceptions lol) .. à toi de voir.

Moi j'aurais fait : (c'est en caml light .. j'ai oublié quelques trucs de syntaxes en ocaml ^^)
let couple_of_list = function
    [] -> failwith "none"
    |t::q -> t,q
;;

ou bien :
exception None ;;
let couple_of_list = function
    [] -> raise None
    |t::q -> t,q
;;

Voila, le failwith rendra une erreur si c'est la liste vide, et le Raise None l'exception None.

Tu peux les réutiliser dans un autre programme avec la fonction "try with".

Voilà ^^ en esperant t'avoir aider.
0