Date: 2008-03-07 05:12 pm (UTC)
А, нет, залез в электричку и тут же понял, что я нагнал, полиморфизм тут есть, он проявляется в том, что я могу присвоить в переменную указатель на любой метод соответствующей сигнатуры. Ну, или если бы я без делегатов писал, как-нибудь исхитрившись сделать лексические кложуры ручками, мне бы была необходима возможность передать в качестве экземпляра абстрактного класса
Branch
{
public abstract Fii Apply(Branch b);
}
произвольную имплементацию (в которой в Апплае как-то отражалась бы структура соответствующей лямбды.

Переписал (http://fj.technocore.ru/freestuff/TestYCombinator2.cs), кстати, на чистые делегаты, без классов. Если вдруг интересно.

Ключевая строчка, позволяющая устроить всё это безобразие:
public delegate Fii Branch(Branch p);

Дальше всё довольно тривиально, правда, типовыводитель, конечно, не всеведущ, поэтому приходится ему в двух местах с самого начала указать тип делегата в явном виде, а дальше он уже сам.

Получилось совсем ясно и чисто.

Удивляюсь, как вам удаётся прогать на жаве. Очень ведь должно было бы быть неприятное ощущение, что язык slightly inferior по сравнению с точно таким же, но другим, как бы ничего серьёзного, но каких-то мелочей не хватает, причём нет ни малейшей надежды, что разработчики смирят гордыню и их добавят.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

June 2025

S M T W T F S
1 2345 6 7
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 8th, 2025 08:38 am
Powered by Dreamwidth Studios