[racket] Ceylon language borrows Typed Racket features?
Has anyone taken a look at the upcoming language
Ceylon<http://in.relation.to/Tutorials/IntroductionToCeylon>?
It feels to me like a pretty aggressively blub-y Java clone, but it has two
features that seem like they're ripped straight out of Typed Racket.
It looks like the language includes a basically verbatim copy of TR's
dotted type parameters, which it calls "sequenced type
parameters<http://in.relation.to/Bloggers/IntroductionToCeylonPart8#H-RepresentingTheTypeOfAFunction>".
For example, the supertype of all tuples is written
Tuple<T,P...><http://in.relation.to/Bloggers/TuplesOrNot>
.
It also has untagged union
types<http://in.relation.to/Bloggers/IntroductionToCeylonPart5>(written
like
Int|Bool) which can be deconstructed with switch-case statements, sort of
like a watered down version of occurence typing:
switch (foo)
case (is Bool) {
// this type checks
local isTrue = foo || true;
...
}
case (is Int) {
// so does this!
local x = foo + 1;
...
}
Anyhow, I just thought it was interesting that a language positioning
itself as the successor to Java has as its main point of difference two
features that are almost identical to those in Typed Racket - type-safe
untagged unions and non-uniform variable-arity polymorphism. Even though
the actual language is pretty unappealing to me (and I suspect it might be
to most people who frequent this mailing list) I thought this was a neat
confirmation of the broad appeal of TR's ideas.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20111114/1a2aaf11/attachment.html>