А, нет, залез в электричку и тут же понял, что я нагнал, полиморфизм тут есть, он проявляется в том, что я могу присвоить в переменную указатель на любой метод соответствующей сигнатуры. Ну, или если бы я без делегатов писал, как-нибудь исхитрившись сделать лексические кложуры ручками, мне бы была необходима возможность передать в качестве экземпляра абстрактного класса Branch { public abstract Fii Apply(Branch b); } произвольную имплементацию (в которой в Апплае как-то отражалась бы структура соответствующей лямбды.
Переписал (http://fj.technocore.ru/freestuff/TestYCombinator2.cs), кстати, на чистые делегаты, без классов. Если вдруг интересно.
Ключевая строчка, позволяющая устроить всё это безобразие: public delegate Fii Branch(Branch p);
Дальше всё довольно тривиально, правда, типовыводитель, конечно, не всеведущ, поэтому приходится ему в двух местах с самого начала указать тип делегата в явном виде, а дальше он уже сам.
Получилось совсем ясно и чисто.
Удивляюсь, как вам удаётся прогать на жаве. Очень ведь должно было бы быть неприятное ощущение, что язык slightly inferior по сравнению с точно таким же, но другим, как бы ничего серьёзного, но каких-то мелочей не хватает, причём нет ни малейшей надежды, что разработчики смирят гордыню и их добавят.
no subject
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 по сравнению с точно таким же, но другим, как бы ничего серьёзного, но каких-то мелочей не хватает, причём нет ни малейшей надежды, что разработчики смирят гордыню и их добавят.