Я пытаюсь создать перестановки строк, содержащихся в списке в OCaml. Я до сих пор работал над следующим фрагментом кода, но перед этим столкнулся с проблемой передачи первой строки списка в мой метод.Ошибка - Рекурсивные вызовы функций с помощью списков прогона - OCaml
Логика для кода: Переходите к каждому элементу списка и добавьте каждый элемент с элементом списка. Продолжайте делать до тех пор, пока все элементы не будут добавлены к списку во всех возможных положениях.
Код:
(* 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
;;
Ошибка:
Я получаю эту ошибку:
несвязанного значение appendtolist
Происходит при вызове: (appendtolist п списка List.tl)
Мой список состоит только из строки. Я все еще работаю над кодом. Но застрял в этом из-за этой ошибки.
Пожалуйста, помогите !!! Любой вход будет отличным.
Почему это помечено sml и smlnj, если вы используете ocaml? – sepp2k 2010-11-27 23:40:04
Я исправил теги, так как это определенно OCaml и не имеет очевидной связи с SML. – Porculus 2010-11-27 23:42:14