Version française
Home     About     Download     Resources     Contact us    
Browse thread
object constructor syntax compiler weirdness
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Mike Lin <mikelin@m...>
Subject: object constructor syntax compiler weirdness
Hello,

The following are by no means common or advisable syntax, but I was
curious if there is a rationale behind why certain things are syntax
errors or not. I'm using 3.08.4 -- apologies if this was fixed or
modified in 3.09.


class circle radius =
  let pi = 3.14159 in
  object
   method area = pi *. radius *.radius
  end

>> fine

class circle2 radius =
  let pi = 3.14159 in
    print_endline "Creating a circle";
    object
     method area = pi *. radius *.radius
    end

>> syntax error

Most curiously:

class circle3 radius =
  let pi = 3.14159 in
    (object
      method area = pi *. radius *.radius
     end)

>> fine

class circle4 radius =
  let pi = 3.14159 in
    begin
     object
      method area = pi *. radius *.radius
     end
    end

>> syntax error