Здравствуйте, IT, Вы писали:
IT>Нужны ли расширялки для манипулирования сабжем вроде таких? IT>Область применения обход, поиск в, трансформация деревьев выражений вплоть до псевдо квази цитирования.
В принципе не помешают, если убрать всю специфику linq2db.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
Здравствуйте, IT, Вы писали:
IT>Нужны ли расширялки для манипулирования сабжем вроде таких?
IT>Область применения обход, поиск в, трансформация деревьев выражений вплоть до псевдо квази цитирования.
Я бы добавлял в CodeJam.Main только универсальные вещи. Т.е. то, что не относится к обходу дерева и к написанию linq-провайдера. Для большинства пользователей оно само по себе не нужно абсолютно и используется только как часть тулкита аля linq extender или re-linq.
Ну и не забываем про ExpressionVisitor из фреймворка, с ним конкурировать простым хелперам тяжеловато
Здравствуйте, Sinix, Вы писали:
S>Я бы добавлял в CodeJam.Main только универсальные вещи. Т.е. то, что не относится к обходу дерева и к написанию linq-провайдера. Для большинства пользователей оно само по себе не нужно абсолютно и используется только как часть тулкита аля linq extender или re-linq.
Для большинства пользователей не нужно большинство фич CodeJam. Я вот пока смог применить от силы несколько процентов.
S>Ну и не забываем про ExpressionVisitor из фреймворка, с ним конкурировать простым хелперам тяжеловато
С этой тяжеловесной хернёй (простите мне мой французский) никто конкурировать не собирается.
Если нам не помогут, то мы тоже никого не пощадим.
этот момент с Андреем, довод про "не включаем, т.к. мало кому надо" не катит.
S>>Ну и не забываем про ExpressionVisitor из фреймворка, с ним конкурировать простым хелперам тяжеловато IT>С этой тяжеловесной хернёй (простите мне мой французский) никто конкурировать не собирается.
Ну и ок тогда.
Проблема в том, что текущий дизайн выглядит странно с точки зрения неподготовленного пользователя и сильно лучше его сделать не получается.
Варианты предлагал — не подошли.
Отказываться тож не хочется, вещь полезная.
Главный затык сейчас с именами методов LowerBound/UpperBound/EqualRange/PartitionPoint.
Вот что про них известно:
* список должен быть отсортирован
* LowerBound — первый индекс в списке, для которого значение >= переданного значения, условное название — IndexFrom
* UpperBound — первый индекс в списке, для которого значение > переданного значения, условное название — IndexTo
* EqualRange — пара из LowerBound + UpperBound, условное название — IndexesFromTo
* PartitionPoint — первый индекс в списке, для которого предикат становится False. условное название — IndexToWhere
Собственно что надо отразить в названии:
* все 4 метода решают один и тот же сценарий, но слегка по-разному, из имени должно быть понятно зачем он нужен.
* методы имеют смысл только для отсортированных коллекций.
Здравствуйте, IT, Вы писали:
IT>Нужны ли расширялки для манипулирования сабжем вроде таких?
Вопрос по свежедобавленному ExpressionExtensions
У нас есть CodeJam.Reflection.ExpressionHelper, надо бы или слить, UPD или как минимум перенести в ExpressionExtensions файл ExpressionHelper.Func.tt — фигню написал, код хуже становится
var expression1 = ExpressionHelper.Func((int a) => Enumerable.Repeat(a, a));
// станетvar expression1 = ExpressionExtensions.Func((int a) => Enumerable.Repeat(a, a));
Может, методы Func() и Action() вообще в Expr вынести, по аналогии с CodeJam.Fn?
2All: Если есть идеи лучше — велкам!
В идеале это надо бы сделать до релиза, иначе будем сразу 2.0 следом выпускать.