Aleksandr
То, что сейчас возвращает
Aleksandr
Лэйзи енумербл
Ayrat
То, что сейчас возвращает
Селект - эт монадический мап. Поэтому тип результата определяется контекстом использования
Bonart
Сейчас селект возвращает M<T>
Bonart
А ни хера не ленивый итератор
Bonart
Что в шпрахе, что в реактивках, что в линке для тасок
Bonart
А для верующих в святого енумерабла в аду отдельный котел есть
Bonart
Другое дело что средствами шарпа это не опишешь вот и лезет утиная типизадция с компиляторной магией
Igor
а другие что используют вместо linq?
Doge
а другие что используют вместо linq?
Смотря где. В хаскеле: functor + foldable + traversable или сразу линзы
Bonart
а другие что используют вместо linq?
Всякое говно вроде стрим апи в яве, поездатые CE в фарше, до-нотацию и монадки в хаскеле
Doge
Ну и функции для конкретных коллекций
Doge
Т.к. все общие функции сохраняют тип, в отличие от линка
Bonart
Линк в этом не виноват это все ява проклятая
Igor
так, хаскель пока оставим в стороне, c# с ним нет никакого смыслы сравнивать. В жаве оно лучше сделано?
Bonart
В яве оно хуже сделано. В скале кое-что сделано лучше, кое-что вместо все, потому что JVM мешает
Dr. Friedrich
Dr. Friedrich
Ну то есть это только вместо Linq2Objects
Bonart
Ну то есть это только вместо Linq2Objects
Это вместо Linq2ЧтоУгодно
Dr. Friedrich
Это вместо Linq2ЧтоУгодно
Ну давай, сделай мне linq2sql на этом
Dr. Friedrich
Забыли описать, как будем делать экспрешены
Bonart
Ну зачем ты сразу ниже пояса-то?
Dr. Friedrich
Ну я именно об этом и спрашивал
Dr. Friedrich
Если вы тут обсуждали только linq2objects — тогда лан, извиняюсь.
Bonart
Тут любители выпила типов жидко лажают :)
Dr. Friedrich
Ну просто это не такой интересный случай, и он нормально сделан в яве и в других языках, хотяб и в JS даже.
Bonart
А дотнетик в белоснежном костюме
Ayrat
Тут любители выпила типов жидко лажают :)
На помощь приходит фри монада
Dr. Friedrich
А linq2sql грустно сделан.
Dr. Friedrich
Ну то есть в яве скорее смешно, у остальных скорее грустно.
Dr. Friedrich
Там некоторые чувачки берут и парсят байткод :)
Bonart
Dr. Friedrich
Ну то есть когда мы научимся решать проблему останова, то это вообще начнёт работать супер классно.
Ayrat
Звучит как компиляторно зависимая дичь
Bonart
Хм, а чо так можно было?
Так ява без ломбока - деньги на ветер
Ayrat
Так ява без ломбока - деньги на ветер
Эт я уже понял. Мне тут выкатили недавно апищечку на яве. Сверху донизу аннотации
Ayrat
Попросил выкатить на скале
Ayrat
Bonart
Отож. То был ещё и спринг
За спринг надо сразу бить морду, я полагаю
Ayrat
За спринг надо сразу бить морду, я полагаю
Ну для той цели в общем не важно, надо было быстро быстро сделать. потому исполнитель выбрал то, что знает
Ayrat
Но переписать время есть когда дырку закрыли
Bonart
А потом еще рах переписать :)
Ayrat
А потом еще рах переписать :)
Надо ж людей чем-то занять
Igor
Ну то есть в яве скорее смешно, у остальных скорее грустно.
а как в яве сделано? название хоть скажи, я сам дальше в гугле найду
Dr. Friedrich
а как в яве сделано? название хоть скажи, я сам дальше в гугле найду
Эх, щас уже не могу найти. У них точно был парсер байткода, но мало кто им пользовался (потому что, блин, ну серьёзно), и щас уже не нагуглить.
Igor
ну и ладно
Igor
линк говно, но и другого никто не предложил (хаскель не считается)
Dr. Friedrich
Вернее, предложили, но не полный аналог. Такого добра везде хватает.
Dr. Friedrich
Шоб я прям на хостовом языке мог написать выражение, и оно скомпилилось в SQL — такого нету.
Dr. Friedrich
Собственно, даже в F# с этим проблема, что пришлось свои экспрешены изобретать
Dr. Friedrich
Опять же в теории, фри монада решает эту проблему
Я не вижу, как она решает эту проблему.
Dr. Friedrich
let x = 2 + 2 Вот что мне фримонада с этим кодом сделает?
Ayrat
Я не вижу, как она решает эту проблему.
Ты пишешь что угодно, оно интерпретируется в сиквель
Dr. Friedrich
Ну как?
Dr. Friedrich
Надо let! x = 2+2
В хаскеле такое разве есть?
Igor
Линк не говно. Но линку очень нужны HKT
у HKT скорее всего другая проблема, большинство не захочет изучать это. Вон многим проще на go писать
Ayrat
В хаскеле такое разве есть?
Реализации я не видел, говорю ж, в теории. Фри монада позволяет интерпретировать твои выражения как угодно
Dr. Friedrich
На фримонаде там будет что-то типа num(2) `plus` num(2)
Ayrat
А если без этого денег не платить?
Деньги платит бизнес, ему до хкт пофигу
Dr. Friedrich
В лучшем случае
Dr. Friedrich
Ну то есть это обычный DSL с интерпретатором
Dr. Friedrich
Не то чтобы это плохо — нет
Dr. Friedrich
Но это не то же самое, что в linq2sql.
Ayrat
На фримонаде там будет что-то типа num(2) `plus` num(2)
Именно. Можно транспильнуть в сиквель, а можно посчитать и выполнить.
Dr. Friedrich
Но всё-таки ты будешь оперировать не совсем над хостовыми типами
Bonart
Деньги платит бизнес, ему до хкт пофигу
Верно, но я с HKT лучше дам результат чем макаки без оного
Dr. Friedrich
У тебя просто будет DSL. DSL для запросов мы на любых языках видим много
Dr. Friedrich
На самом деле я просто хочу квотейшены :)
Dr. Friedrich
Наверняка в хаскеле есть какой-нибудь хитрый флаг компилятора, чтобы были квотейшены?