You need parenthesis around (n+1), and it's "if m>first(element ) &&
n< second(element)" : "and" is an OCaml keyword.

There is a beginner list (
http://groups.yahoo.com/group/ocaml_beginners ) that would probably be
more suited to those questions.

On 2/22/09, Su Zhang <westlif...@gmail.com> wrote:
> 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
>

_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Reply via email to