真正的基本问题在这里:我是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*)
我想看看列表2和项目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*)
我觉得我做的一切都是错的......任何意见,将不胜感激! 谢谢。