ここでの本当の基本的な質問:私はOcamlを初めて使用し、リストを操作しようとして問題が発生しています。http://caml.inria.fr/pub/docs/manual-ocaml/libref/List.htmlを読みましたが、残念ながらまだ混乱しています。関数型プログラミングは初めてです。
たとえば、次の関数がある場合:
let stoverfl list1 list2 list3 =
match list1 with
|[]->None
|h::list1 -> (*what I want to do goes in here*)
list2とlist3の最初の要素を調べて比較し、等しい場合はlist3の最初の要素をlist2に追加します。それ以外の場合は、リストを変更しないでください。今はエラーチェック(つまり、リストに少なくとも1つの要素があるかどうかをチェックするなど)についてはあまり気にしません。
私の試み:
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*)
私はそれをすべて間違っているように感じます...どんなアドバイスもいただければ幸いです!ありがとう。