Version française
Home     About     Download     Resources     Contact us    
Browse thread
Anonymous classes
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: William Chesters <williamc@d...>
Subject: Anonymous classes
   Could we have anonymous classes, as a natural counterpart to
anonymous functions?

	let x =
	  object
	    method foo = 17
	  end
	in
	...

They would sometimes be useful for specifying the little bits of `glue'
one needs to interface a library routine with one's current problem.

   On the other hand maybe this kind of sugar isn't strictly
necessary, since I found this pretty easy to add with camlp4 :-),
using a dummy local module.

	expr: LEVEL "simple"
	  [ [ "object"; cspo = OPT class_self_patt;
                        cf = class_structure; "end" ->
		<:expr< let module Dummy__ =
			  struct
			    class c () = object $cspo$ $list:cf$ end ;
			  end
			 in
			 new Dummy__.c () >> ] ] ;

(except that the definitions of class_structure and class_self_patt
need to be copied from pa_o.ml)