Нельзя ли как-нибудь засахарить субж?
Пример кода на C#:
var lst = new []{1,2,3,4,2,3,4,3,4,4};
var g = lst.GroupBy(_ => _);//передается identity function
var d = g.ToDictionary(_=>_.Key, _=>_.Count());
А вообще, это довольно часто используемая функция и было бы приятно иметь сахар для нее.
Перепишем на Nemerle:
def lst = [1,2,3,4,2,3,4,3,4,4];
def g = lst.GroupBy(x => x);//упс, сахара нет и '_' нельзя использовать
def d = g.ToDictionary(_.Key, _.Count());
Очевидно, что "lst.GroupBy(_)" не подходит...
Если сделать макрос
public macro __()
syntax ("__")
{
<[ x => x ]>
}
, то получится писать так: "lst.GroupBy(__)".
Нельзя ли этот макрос добавить в стандартную библиотеку?
PS А еще было бы здорово сделать
вот эту оптимизацию.
PPS Еще
вот тут нашел велосипедик (см Id[T]).