Ceylon language

bearophile bearophileHUGS at lycos.com
Thu Apr 14 12:06:43 PDT 2011


spir:

> But I guess optionality could, and should, extend to non-ref types; thus, null
> is just a particular case of non-existence. And this would apply especially on
> function parameters:
>    void f (int i?) {...}

>From C# experience it seems non-ref nullable types are not so useful (and it's not hard to implement them with the language itself).


> Also, they should reuse '?' to mean 'exists', possibly '!?' meaning the opposite:
>     void f (int i?) {
>     if (? i) doWithI(i);
>     if (!? i) doWithoutI();
>     ...
> }

Better to keep the language less perlish.


> great! get rid of new in D as well

This was discussed a lot. I don't have much interest in this change.


>> We may define a class method "by reference":
>>
>> void hello(String name) = hello;
>
> ???

The second hello is a function reference. Nothing so interesting to see here.


> I don't get the diff between currying & partial app.

Take a look at the wikipedia pages, the difference is small, they are quite related things, their difference is no so important:
http://en.wikipedia.org/wiki/Currying
http://en.wikipedia.org/wiki/Partial_application


> And find this feature much complication for close to uselessness.

In functional-style programming it's useful to be able to curry (or partially applicate) functions, it helps keep the code shorter and less noisy.


> examples?

See the first PDF at those pages. In the meantime people have mirrored those PDFs, see the Reddit thread.


> Yo; and while you're at "typestating", extend the feature to any type (not only
> pointers).

For this you may need to look for a language (Rust) designed for the ground up for this feature.

Bye,
bearophile


More information about the Digitalmars-d mailing list