On Fri, 2007-02-16 at 12:44 -0500, Chris King wrote:
> On 2/16/07, Rhythmic Fistman <[EMAIL PROTECTED]> wrote:
> > Mr Potential Developer...
> 
> You just described my experience to a T. :)

One reason is that since the last release, most of the
work has been on stuff like implementing typeclasses.

So at this point, the language is a LOT different from
the last released version, but still not stable enough
to make another release ..

So the web site has been ignored.. I can't implement major
new features and also maintain all the other resources..

That's what this thread is about. I just can't do it.
The current system requires about 10 active developers
to maintain .. plus users to help set priorities.

People come along and like some of the stuff they
find out about quite a lot! Your ordinary programmer
(who doesn't know Haskell or Ocaml .. ) is usually
totally blown out by what it can do.

i mean look at this in the lambda blog:

/////////////////
Multi-methods = dynamic overloading
In a nutshell, the basic idea of multi-methods is to unify overloading
and dynamic dispatch into one concept, essentially by resolving
overloading dynamically.

An even more general concept are multi-parameter type classes, as found
in implementations of Haskell. They allow you to dispatch not only on
arguments, but on any portion of a type signature, including the return
type of a function. This is because resolution is decoupled from
values/objects and does not require the presence of representatives, as
is the case in OO.

By Andreas Rossberg at Sat, 2007-02-17 01:52 | reply
//////////////////////

Hey .. Felix has multi-parameter type classes!

Now check this out:

typeclass Prim [t] {
  virtual fun isprim () => true;
}

instance Prim [int] {}

instance Prim [int * int] {
  fun isprim () => false;
}

Understand it? It's run time type information:
the virtual isprim can detect if a type is a primitive
or not (as defined by the instances).

Oh, and in Felix the choice doesn't actually require
any type information and the result is entirely static.
In other words .. this is conditional compilation!
But it can't fail either.. :)

Now for some time I see this:

        typematch .. with | _ * ?t => t | .. endmatch

which maps types to types .. but wish I had this:

        typecase .. with | _ *t => "blah" .. endmatch

which maps types to expressions...

Hey wait! We can do that with typeclasses .. it's a bit
messy but the Prim typeclass shows typeclasses can map
types to values.


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

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to