J'essaie de créer des permutations de chaînes contenues dans une liste dans OCaml. J'ai travaillé sur l'extrait de code suivant jusqu'à maintenant mais je suis confronté à un problème en passant la première chaîne de la liste à ma méthode.Erreur - Appels de fonction récursifs en passant des listes - OCaml
Logique pour le code: Itérer pour chaque élément d'une liste et ajouter chaque élément à l'élément de la liste. Continuez jusqu'à ce que tous les éléments aient été ajoutés à la liste dans toutes les positions possibles.
code:
(* this function appends each string to each word in the list example: "A" with "ABC" *)
let appendtocode n word =
let f x = n^x in
f word
;;
(* this function extracts every element of the list and appends it with the string.
Example: "A" with ["AAA","ABC","ACD"] etc.. *)
let appendtolist n list =
let f x =
if (List.length list) > 0 then list
else ((appendtocode n (List.hd list))^(appendtolist n (List.tl list)))
in
List.map f list
;;
Erreur:
Je reçois cette erreur:
valeur Unbound appendtolist
se produit à l'appel à: (n appendtolist liste List.tl)
Ma liste est seulement constitué de chaîne. Je travaille toujours sur le code. Mais bloqué à cause de cette erreur.
S'il vous plaît aider !!! Toute contribution serait géniale.
Pourquoi est-ce marqué sml et smlnj si vous utilisez ocaml? – sepp2k
J'ai corrigé les tags, car c'est définitivement OCaml et il n'y a pas de connexion évidente avec SML. – Porculus
merci. et je m'excuse pour la confusion. – JJunior