Hi all,
 
I have a problem while executing ocaml, did you see any problem in my code? and do I need to give each variable a type before I use it ?my code is in the following, you can take a look at the code and the info of the errors
 

let rec first(x, y, z)=x

let rec second(x,y,z)=y

let rec third(x,y,z)=z

 

let rec rebuilt anss  (m,n,ys)= match anss with

        []           ->       (m,n,ys) 

|element::anss ->

         if m>first(element ) and n< second(element)

         then rebuilt anss (m,n,ys)

         else element::(rebuild anss (m,n,ys))

 

let rec sum anss cur n ys= match cur with

           None   ->

             (match ys with

[]-> anss

|y::ys->

if y=0

then sum(rebuild anss (n,n,0)) None n+1 ys

else sum anss (Some(n, y, [y])) (n + 1) ys)

 

the red area is shown has an error, and the error info is like this:"This expression has type int list -> 'a but is here used with type int", so would you please let me know if possible how can I let the compiler know the type of anss is a list but not an integrer?

thank you
--
Su Zhang
PHD Student
Computer Information and Science
Kansas State University