Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
a problem about type recongnition
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2009-02-22 (06:27)
From: Su Zhang <westlifezs@g...>
Subject: a problem about type recongnition
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


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