[Ocaml] pb de programmation
Coralie
-
CissWit -
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 !!
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:
- [Ocaml] pb de programmation
- Application de programmation - Guide
- Télécharger le programme de pmu - Télécharger - Médias et Actualité
- Fermer un programme de force - Guide
- Programmation envoi sms - Guide
- Impossible de programmer télécommande came ✓ - Forum Téléviseurs
1 réponse
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 ^^)
ou bien :
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.
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.