On Sun, 2007-09-09 at 13:40 -0700, Erick Tryzelaar wrote:
> This is odd. I can't directly call the isinf function:
> 
> #import <flx.flxh>
> val foo = Double::isinf;
> 
> Results in:
> 
> CLIENT ERROR
> Can't find isinf
> In ./foo.flx: line 2, cols 1 to 24
> 2: val foo = Double::isinf;
>    ************************
> <eof>
> 
> What's going on?

        val foo = Double::isinf of (double); // OK
        val foo = the Double::isinf; 
                // not sure if 'the' works with
                // qualified names

As usual, Double::isinf is a function set, you have
to select which of the functions to use by overloading
or by specifically saying 'the' which mean 'I know there
is only one of them'.

I will have to check the code, but I suspect that 'the' should
not be needed for a qualified name because a module is a CLOSED
entity. If there is one function in a module, it is evident
from the interface and can't be changed (without invading
the module).

For an unqualified name, you have all the 'open' to 
deal with, and a change not near the function use may
break it by adding an overload.

-- 
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