Re[2]: Identity function
От: artelk  
Дата: 05.08.11 06:58
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, artelk, Вы писали:

A>>Если сделать макрос
_FR>…
A>>, то получится писать так: "lst.GroupBy(__)".
A>>Нельзя ли этот макрос добавить в стандартную библиотеку?

_FR>Название не очень.


Идея такая: _ означает частичное применение функции. Но для того, чтобы функция возникла, нужно c этим _ что-то сделать:
Т.е. _ захватывает свое ближайшее окружение и превращает его в функцию.
Тогда __ было бы специальным случаем частичного применения, когда окружение не захватывается, а оно само образовывало бы функцию.
И "lst.GroupBy(__)" перобразовывался бы к "lst.GroupBy(x=>x)", вместо "x => lst.GroupBy(x)".
Re: Identity function
От: hardcase Пират http://nemerle.org
Дата: 05.08.11 07:26
Оценка: 39 (1)
Здравствуйте, artelk, Вы писали:

A>PS А еще было бы здорово сделать [url=http://code.google.com/p/nemerle/issues/detail?id=542&q=label%3APriority-


Оптимизация будет, но сахара не будет, пользуйтесь x => x.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[6]: Identity function
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.08.11 13:31
Оценка: +1
Здравствуйте, _FRED_, Вы писали:

_FR>Согласен. Может быть, использоваь символ "=>"? Это конечно _немного более_ понятно. Справится ли парсер с этим?


Мне кажется, что это ситуация в которой просто ничего не надо делать. Хардкейс (вроде как) реализовал оптимизацию и теперь вместо любой сквозной лямбды будет подставляться ссылка на предопределенную функцию. Так что с производительностью все будет ОК. Выражение "x => x" коротко и кристально понятно. Ну, а кому не нравится заведет в личной библиотеке функцию с таким именем которое будет ему понятно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Identity function
От: _FRED_ Черногория
Дата: 05.08.11 14:27
Оценка:
Здравствуйте, VladD2, Вы писали:

_FR>>Согласен. Может быть, использоваь символ "=>"? Это конечно _немного более_ понятно. Справится ли парсер с этим?


VD>Мне кажется, что это ситуация в которой просто ничего не надо делать. Хардкейс (вроде как) реализовал оптимизацию и теперь вместо любой сквозной лямбды будет подставляться ссылка на предопределенную функцию.


Это круто. Пропустил как-то

VD>Так что с производительностью все будет ОК. Выражение "x => x" коротко и кристально понятно. Ну, а кому не нравится заведет в личной библиотеке функцию с таким именем которое будет ему понятно.


+100
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Identity function
От: hardcase Пират http://nemerle.org
Дата: 05.08.11 21:00
Оценка: 57 (2)
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, artelk, Вы писали:


A>>PS А еще было бы здорово сделать [url=http://code.google.com/p/nemerle/issues/detail?id=542&q=label%3APriority-


H>Оптимизация будет, но сахара не будет, пользуйтесь x => x.


Готово.

Судя по ILSpy эта оптимизация реализовалась в компиляторе и библиотеках около десятка раз.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[6]: Identity function
От: VoidEx  
Дата: 08.08.11 08:30
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Людям не пораженным математикой головного мозга


Ломоносов и Кант о математике иначе отзывались.
Re[7]: Identity function
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.08.11 11:25
Оценка:
Здравствуйте, VoidEx, Вы писали:

VD>>Людям не пораженным математикой головного мозга


VE>Ломоносов и Кант о математике иначе отзывались.


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