Re[55]: The door
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 19.07.18 14:13
Оценка:
Здравствуйте, vdimas, Вы писали:

I>>Y-комбинатор это Expression. Ты же показал Statement


V>Анонимную рекурсивную ф-ию создать нельзя.

V>Если нет имени, то как сослаться на такую ф-ию? ))

Ключевое слово — Expression. Если в твоем решении statement, то соответсвенно надо писать мануал по применению присваивания. Иногда присваивание унутре допустимо — для Enumerable, иногда — недопустимо, Queryable, иногда — в зависимости от контекста.

I>>Лямда рекурсивная в виде Expression возможна только и исключительно через Y-комбинатор.


V>Через Y-комбинатор тоже не всегда удобно, бо подаётся не рекурсивная ф-ия, а обычная, но её сигнатура усложняется за счёт протягивания её же.

V>Но так-то получается те же яйца вид в профиль — через имя аргумента стало возможно ссылаться на рекурсивную ф-ию по имени.

Именно — нужно городить огород.

V>Тогда уж можно внутри неименованной лямбды сделать именованную и ву а ля.


V>
V>source.Select((int x) => { int fact(int y) => y<2?1:y*fact(y-1); return fact(x); });
V>


V>Ты просил показать без Y-комбинатора?

V>Ну и вот. ))

Цитирую себя "Лямда рекурсивная в виде Expression возможна только и исключительно через Y-комбинатор."
Ты почему то увидел "Y-комбинатор", но забыл про Expression


I>>С твоим подходом придется на ровном месте плодить простыни кода.


V>Поверх целевого кода?

V>Не придётся.

Зачем же ты раз за разом приводишь примеры тех самых простынь ? Вероятно, ты утаиваешь какой то секрет — говоришь, что можно без простынь, но везде примеры про простыни
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.