Настоящий основной вопрос здесь: Я новичок в Ocaml, и у меня возникают проблемы с управлением списками. Я читал http://caml.inria.fr/pub/docs/manual-ocaml/libref/List.html, и я, к сожалению, все еще смущен .... Я новичок в функциональном программировании.Списки управления Ocaml
Если у меня есть, скажем, следующую функцию:
let stoverfl list1 list2 list3 =
match list1 with
|[]->None
|h::list1 -> (*what I want to do goes in here*)
Я хочу взглянуть на первые элементы list2 и List3, сравнить их, и если они равны, добавьте первый элемент от list3 до list2, иначе не изменяйте списки. Сейчас я не уверен в проверке ошибок (т. Е. Проверяет, есть ли в списке хотя бы один элемент и т. Д.).
Моя попытка:
h::list1 -> let cmp1 = hd list2 (*this should return the first elemnt of list2??*)
let cmp2 = hd list3
if(cmp1=cmp2) then
let updlist2 = concat list2 hd list3
let updlist3 = hd list3
(*pass updlist2 and updlist3 instead of list2 and list3 to next function*)
else
(*do nothing; pass list2 and list3 as normal*)
Я чувствую, что я делаю все это неправильно ... любые советы будут оценены! Спасибо.