On Sun, 2007-09-23 at 19:59 -0700, Erick Tryzelaar wrote:

> module File
> {
>   type t = ...;
> 
>   fun file (name:string): File::t => ...;
> 
>   proc foreach (file:File::t) (f:line->void) => ...;
>   proc foreach (name:string) (f:line->void) => ...;
> }
> 
> Then, we could use the dot notation to do this:
> 
> open File;
> val f = file ("foo");
> 
> f.foreach (fun (line:string) => println line;);
> 
> I believe we can do this now. The problem with this though is that we
> introduce some stuff into the scope that we might not want to have
> there. After opening File, 

No .. see below..

> it would be ambiguous what do to if there
> was another foreach like this:
> 
> proc foreach (s:string) (f:line->void) => ...;
> 
> You could no longer do:
> 
> "abc\nefg".foreach (fun (line:string) => println line;)
> 
> because both functions have the same definition. 

> So, I wonder if
> there'd be a way to have the dot notation somehow implicitly include
> the defining module in the lookup of a function. Then, the previous
> example would look like this (with no implicit open):
> 
> val f = File::file ("foo");
> f.foreach (fun (line:string) => println line;);

You're confused above... what you means i BEFORE opening
the file:

        "lpsrc/flx_fred.ipk" . foreach println;

might be ambiguous -- if the conflict was due to two
open modules: there's no conflict with a local definition,
they always take precedence.

One way to resolve this might be:

        (name="lpsrc/flx_fred.ipk") . foreach println;
        (s="a\nb\nc") . foreach println;

i.e. use records .. which suggests 'filename' might be a 
better parameter name than 'name' .. this doesn't work right
now so I'll fix it..

-- 
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to