Ну вот допустим отделится Техас... условный Трамп введет пошлины 70% на торговлю с этим штатом...и....и всё, досвидания мечты что "мы тут все богатые нас только доит федеральный центр"...
Или не введёт, потому что у Техаса не будет пошлин с США. Трамп вводит тарифы, основываясь на [его впечатлении о] тарифах другой стороны. Типа, если Китай чё-то там преграждает, то преградим в ответ от Китая.
окажется что грузовые потоки идут через чужие теперь территории
Какие грузовые потоки? Которыми Техас торгует с третьими странами? У него есть доступ к водным портам, камон.
электричество
Я уже писал об энергетической самодостаточности, и техасская энергосеть (ERCOT, покрывающий 90% Техаса) уже (и давно)независимая: связность с остальными США (и Мексикой) идёт через пяток DC-DC-трансформаторов, общая мощность которых где-то в окрестности гигаватта (что на фоне пикового потребления в этак 85-90 гигаватт и производства в этак 120 гигаватт — смешные копейки).
вода
У меня нет жёстких цифр по воде, но некоторые дополнительные данные позволяют заключить, что импорт воды околонулевой. Например, инфраструктура по транспорту воды на длинные расстояния исключительно хреновая, я пару месяцев назад натыкался на новости о каких-то проектах по починке протечек в трубах, которые сэкономят типа 30% на масштабах в 100 миль, или около того.
компании могут перестать сотрудничать с этой территорией по какимто своим причинам (из-за налоговых проблем)
Компании спокойно сотрудничают с Европой (и имеют там офисы), это как раз вообще не проблема.
например люди живущие в отделившемся штате не смогут работать в компаниях из другого штата (внезапно да? в США нельзя так работать если ты не гражданин.. плюс если остаться гражданином США то будут сложности с уплатой налогов как гражданину США так и гражданину новой типа-страны)
Сделает компания офис-почтовый ящик в Техасе, где-нибудь в Лондоне (как компании делают в Делавере), господи, тоже мне проблема.
в Техасе много бабла потому что туда много компаний переехало по разным причинам
Там это бабло было ещё до 2020-го, если вы об этом отъезде. Топ-5 компаний появилось в Техасе.
потому что антиоффшорные регуляций много навводили в т.ч. в штатах, и корпорациям может перестать иметь смысл оставаться в Техасе как отдельной стране
Есть при этом куча компаний, которые инкорпорированы не в США (а в Ирландии, скажем), но де-факто являются американскими.
В конце концов, никто не мешает заключить особое соглашение на эту тему. Оффшорные регуляции — не законы физики.
Человек напрочь игнорирует абзац, который я написал после этого, прямо указывающий, что это не так, а потом говорит, что ложью и демагогией занимаюсь я, лол.
Мне неизвестны штаты, которые наказывали бы непосредственно за сделанный аборт, и это наказание бы энфорсилось.
Женщине из Техаса или Флориды куда проще и дешевле съездить в условный Нью-Йорк сделать аборт, чем женщине из Польши — в прочойсерскую страну в Европе (но никто почему-то не называет ЕС альтрайтами, кстати).
Я, конечно, за аборты, включая постнатальные этак лет до трёх (когда начинают появляться зачатки рефлексии и того, что мы называем человечностью), но свобода в демократии — это то, что люди называют свободой, и если люди называют (и считают) свободой свободу эмбриона куда-то там развиться, то у нас появляется очевидный конфликт, и люди его в среднем почему-то решают не очень логически консистентно.
Чем это отличается от "не хотите сквотеров — поставьте замки получше"?
Ничем (кстати, учитывая отношение левых что к самообороне, что к сквоттерам, где даже не то что «поставьте замки получше», а «а зачем вам недвига, в которой вы не живёте 24/7?» — очень хорошая аналогия).
Этот вопрос по опыту помогает наиболее быстро понять, какой философии прав придерживается собеседник, и, в части случаев, продолжить разговор про более важную для меня лично тему об отсутствии репродуктивных прав у мужчин (потому что с мужчинами дискурс «не хочешь алиментов и ответственности — не занимайся сексом» вполне себе общепринят).
А по каким критериям мне тогда можно отличать умных и опытных разработчиков вроде вас от обыкновенных интернет-пиздаболов?
А не надо меня отличать. Речь вообще не обо мне или вас. Речь о том, почему в некоторых проектах код на хаскеле будет на порядок более выразителен, чем код на ООП-языке в ООП-парадигмах.
И именно поэтому, например, если бы нам удалось до чего-то договориться хотя бы в игрушечном примере, который показывает один из таких случаев, то можно было бы продолжить обсуждать более крупные примеры (и я бы показал конкретику на uniplate, например, или на автогенерации тестовых примеров, или тому подобных вещах). Но, увы, договориться мы не смогли даже на игрушечном примере, поэтому до чего-то более масштабного не дошло.
Стоит ли мне верить на слово, что ваш компилятор в 5к строк оказался лучше компилятора на цпп в 10-15к строк (я ничего не перепутал?) и при этом написан всего одним человеком и быстрее?
И именно поэтому это на самом деле иррелевантно.
Впрочем, как бы вам мой гитхаб помог сравнить мой проект с проектом другой команды, которого там, очевидно, нет, даже если бы все мои оплачиваемые работы почему-то были бы в опенсорсе?
В данном случае компактность может легко привести к повышенным когнитивным расходам при работе с кодом.
А может и не привести. Может привести к меньшим когнитивным расходам, потому что нужно держать в голове меньше деталей и смотреть на меньшую часть кода.
"Который запланирован к выполнению при определенных условиях" - достаточное уточнение?
Так это снова к любому коду применимо.
В Delphi обработчики событий были более чем годными к применению безо всякого ФП.
Как там будет выглядеть «взять переданный обработчик событий, навесить на него логгирование, и передать дальше»? Или «взять эти два обработчика событий и собрать из них третий, который выполняет первый, а затем, если первый вернул false, выполняет второй»?
Но для этого требуется, чтобы в языке было понятие объектов и их экземпляров. В ООП-языках это понятие есть.
Да, и в классическом ООП (без ФП-элементов вроде лямбд, которые не зря называются ФП-элементами) устраивается закат солнца руками: все эти объекты и экземпляры создаются программистом вручную, явно (что, кстати, даёт компилятору меньше простора для оптимизаций, но то другой разговор).
Вы и в сишечке можете сделать эмуляцию ООП (gtk передаёт привет), но это не делает C ООП-языком, или структуры + указатели на функции — классами.
Но поскольку в ООП потребность в таких действиях по жизни возникает нечасто, то специальная поддержка от компилятора может отсутствовать. А без нее получается, но довольно громоздко.
Не, ИМХО это наоборот: так как без них получается громоздко, то техники не получают распространения. А потом приходят разработчики языка и добавляют всякие там лямбды, однострочные функции и прочую ерунду, и применений становится больше.
Тогда придется переформулировать вопрос - а что есть стрелочка?
Я могу дать вам несколько разных определений, от чисто синтаксических до всяких там денотаций и семантик, но они здесь не нужны. Достаточно интуитивного понимания «штука, которая принимает a, пыхтит и выдаёт b». Точно так же, к слову, я смогу задать последующие уточняющие вопросы к вашему определению классов и объектов, скажем, но это не значит, что их необходимо задавать (или понимать на них ответы) для успешного программирования.
я предпочитаю, чтобы в языке был минимум синтаксических конструкций
А это не синтаксис, это стандартная функция.
весь этот цикл я воспринимаю как одну идиому, это, с одной стороны, конечно, чуть дольше (кое-что проверять надо, не накосячено ли с границами, к примеру)
После того, как вы прочитали и убедились, что именно он делает.
Но, впрочем, окей, спасибо, ответ я получил. Здесь только могу сказать, что для меня ответ другой, и читать вариант с accumulate мне, конечно, проще (как и моим чисто плюсатым коллегам, почему-то так вот выходит).
"В данном случае" касалось аггрегирования списка и контекст был там.
А, так это ещё круче. Вы придумали задачу, которой не было и про которую никто не говорил (что такое «агрегирование списка» вообще?), и подменили ей контекст обсуждения. Круто, чё.
А это - нет.
А это как раз следует из контекста беседы, потому что иначе какой смысл отвечать вашими словами про 100% на мои слова про нестопроцентное прохождение тестов?
Исходный код ваш мне нужен был, чтобы понять, с кем я вообще спорю. Потому что в интернете много неопытных теоретиков, не видевших в глаза проектов больше 10к строк. Какой смысл мне с такими спорить о методах управления сложностью?
1:15:33 ~/Programming/work/pact-5 (master) 130 cloc .
916 text files.
474 unique files.
443 files ignored.
github.com/AlDanial/cloc v 2.00 T=0.19 s (2531.6 files/s, 426070.3 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Haskell 162 6576 6580 51766
[...]
Моё поле и мой тезис: «хаскель эффективнее». Ваша цитата: «Так что в данном случае шарп с хаскелем будет 1:1.» Сиречь вы покажете, что я неправ, и победите.
Так что не ложь.
порядок большем количестве кода
10 строк, решающих в лучшем случае половину, против одной-двух в моём случае.
Так что не ложь.
вопрос не решающем
Ошибки в один список не собраны, «либо ошибка, либо комментарий» не выражено.
Так что не ложь.
и важны только 100%-о работающие компиляторы
Ваша цитата: «Вот пусть и там и там будет 100%, тогда можно сравнивать.»
Никакой ненависти нет. Просто я, как обладатель премии Филдса по гендерным исследованиям я так себя идентифицирую, оставляю за собой право называть мужика мужиком, даже если он себе повесил she/her и надел юбку.
— его, кстати, демократы всячески пытались отмыть. Интересно вам про это было читать, или не, в вашей эхокамере не было?
Или там, не знаю, пройдём по следующим пяти (мне лень копипастить ссылки, они тоже ищутся):
Illinois church goes woke, bans music and liturgical contributions by white people
Hiring manager @dropbox explains that she makes employment decisions based on race, and that she wants “fewer white people” in her life. I have reached out to Dropbox to see how many candidates this manager has rejected in recent years and whether they will investigate.
Google is setting hard caps on how many white and Asian students universities can nominate for a prestigious fellowship, a policy that likely violates civil rights law and could threaten the federal funding of nearly every elite university in the US.
BREAKING: University of California San Diego is hosting racially-segregated college welcome programs for the families of first-year students, explicitly prohibiting white families from participating.
No Whites Allowed: Pfizer Fellowship Flagrantly Violates the Law, Lawyers Say
Тут реальные действия, в отличие от, но вы продолжаете сокрушаться над какими-то мемчиками. Господи, либтарды неисправимы.
Судя по отношению к тем кто хотя бы умеренно левый типа Зохрана Мамдани всё вполне видно.
«Умеренно левый» — это желающий отменить тюрьмы и национализировать магазины? Можно узнать, что такое «неумеренно левый» тогда?
Но я, конечно, выступаю всячески за его победу в Нью-Йорке. Вот бы только не разрешить тем, кто за него голосовал, переезжать потом в красные штаты, и вообще ништяк.
когда у вас правачьё хочет отнимать права у всех кто им не нравится ("your body, my choice" и всё в таком духе)
Какие конкретно права отняли? Не хотите детей — пользуйтесь контрацепцией.
Вполне себе понятная вещь: код, который будет выполнен в будущем.
Это просто код. Добавка «который выполнен в будущем» либо требует уточнений, либо не имеет смысла (потому что не несёт никакой дополнительной информации — абсолютно любой с код с тем же успехом может быть выполнен в будущем).
ФП тут не нужно - идее обработчиков уже сто лет в обед.
ФП это делает юзабельным.
«Классическое» ФП а-ля нетипизированный лисп — потому что обработчики можно композировать. Сишные указатели на функции, как мы с вами оба согласились, композировать нельзя.
«Современное» ФП а-ля обмазали системой типов посильнее — потому что о коде после этого легче рассуждать. И вам не нужно делать interface ITextPredicate вместе с ITextOr и ITextAnd, вы можете просто написать string → bool.
Ну, на самом деле, имелись в виду просто множества - входных параметров и результатов. Множествами тоже мыслить непросто, кстати, привычка нужна, хотя их и в школе проходят (ну, я точно проходил).
Я и множествами не мыслю. Мыслю максимум типами, но почти синтаксически, точно так же, как работает proof finding в некоторых языках: условно, если у меня есть функция типа a → b и другая функция типа b → c, а мне надо a → c, то очевидно, как их совместить. Даже думать не надо, ни о морфизмах, ни о категориях, ни о множествах.
А вы, как я понял, мыслите действиями. Так вот, что, в вашем понимании, есть действие?
В моём — любой терм, тип которого имеет стрелочку первым конструктором типов. Ну, короче, что-то вида a → b.
может, проще захардкодить вызов этих двух функций в отдельном методе, и передавать его делегат
Кому проще и почему?
Вы там дальше про ASP.NET пишете, но у меня с ним ровно ноль опыта. В моём же опыте это оправдано тогда, когда одна и та же последовательность действий повторяется часто. Правда, тогда весь хардкод сводится к
compositeAction = f2 . f1
Написан ли уже этот accumulate?
Да. Это почтиstd::accumulate (только последний принимает пару итераторов вместо одного рейнджа, а std::ranges::accumulate почему-то не сделали, но для дискуссии это несущественно).
И если да, помнит ли про него программист, или ему надо в документацию лезть?
А вот это косвенно мой вам вопрос :]
Есть философия, что надо пользоваться стдлибкой по максимуму. Если вы придёте на конференцию по плюсам или почитаете модный блог, то там вам расскажут про std::for_each, std::accumulate, std::inner_product какой-нибудь, и так далее, и скажут, что их надо предпочитать голым циклам (потому что они делают код выразительнее, интент — понятнее, реализацию — безопаснее, и так далее).
Так про них-то и речь. Концепт один и тот же: сделать из двух действий третье. Просто в классическом ООП реализация такая, что за деревьями теряется лес.
Если вы про шаблон Стратегия, то он про другое - про вынос во внешний объект логическисогласованного набора методов.
Не обязательно набора. Там и один метод выносится, и этот метод обзывается «точкой конфигурации» или чем-то таким. Только смысл у него простой: он, собсна, выражает действие.
Я там весь ваш спор не читал, но по тому что прочел, он идет о том, как писать проще, что отождествляется с короче. Так? В таком виде этот вопрос мне обсуждать не интересно. Проблема с подходом ФП, на мой взгляд - что он не для людей, а для роботов: ну не мыслят люди (кроме специально обученных) малыми категориями и морфизмами.
Я ни разу не мыслил малыми категориями и морфизмами, и ими там мыслить совершенно не нужно.
Я мыслю операциями «применить к каждому узлу дерева такую-то функцию и собрать результаты в новое дерево» (это traverse), а затем, если надо, «собрать все эффекты из узлов нового дерева» (это sequence). Никакого теорката, ничего.
Лично я вот смотрю а программу чисто конкретно - как на рецепт, на последовательность действий, чтобы получить результат.
Тогда вам тот же вопрос, что и исходному товарищу. Что лучше,
int sum = 0;
for (int i = 0; i < vec.size(); ++i)
sum += vec[i];
Или не введёт, потому что у Техаса не будет пошлин с США. Трамп вводит тарифы, основываясь на [его впечатлении о] тарифах другой стороны. Типа, если Китай чё-то там преграждает, то преградим в ответ от Китая.
Какие грузовые потоки? Которыми Техас торгует с третьими странами? У него есть доступ к водным портам, камон.
Я уже писал об энергетической самодостаточности, и техасская энергосеть (ERCOT, покрывающий 90% Техаса) уже (и давно) независимая: связность с остальными США (и Мексикой) идёт через пяток DC-DC-трансформаторов, общая мощность которых где-то в окрестности гигаватта (что на фоне пикового потребления в этак 85-90 гигаватт и производства в этак 120 гигаватт — смешные копейки).
У меня нет жёстких цифр по воде, но некоторые дополнительные данные позволяют заключить, что импорт воды околонулевой. Например, инфраструктура по транспорту воды на длинные расстояния исключительно хреновая, я пару месяцев назад натыкался на новости о каких-то проектах по починке протечек в трубах, которые сэкономят типа 30% на масштабах в 100 миль, или около того.
Компании спокойно сотрудничают с Европой (и имеют там офисы), это как раз вообще не проблема.
Сделает компания офис-почтовый ящик в Техасе, где-нибудь в Лондоне (как компании делают в Делавере), господи, тоже мне проблема.
Там это бабло было ещё до 2020-го, если вы об этом отъезде. Топ-5 компаний появилось в Техасе.
Есть при этом куча компаний, которые инкорпорированы не в США (а в Ирландии, скажем), но де-факто являются американскими.
В конце концов, никто не мешает заключить особое соглашение на эту тему. Оффшорные регуляции — не законы физики.
Человек напрочь игнорирует абзац, который я написал после этого, прямо указывающий, что это не так, а потом говорит, что ложью и демагогией занимаюсь я, лол.
Лол.
Специально сертифицированными факт-чекерами™ из politifact небось. Дважды лол.
Мне неизвестны штаты, которые наказывали бы непосредственно за сделанный аборт, и это наказание бы энфорсилось.
Женщине из Техаса или Флориды куда проще и дешевле съездить в условный Нью-Йорк сделать аборт, чем женщине из Польши — в прочойсерскую страну в Европе (но никто почему-то не называет ЕС альтрайтами, кстати).
Я, конечно, за аборты, включая постнатальные этак лет до трёх (когда начинают появляться зачатки рефлексии и того, что мы называем человечностью), но свобода в демократии — это то, что люди называют свободой, и если люди называют (и считают) свободой свободу эмбриона куда-то там развиться, то у нас появляется очевидный конфликт, и люди его в среднем почему-то решают не очень логически консистентно.
Ничем (кстати, учитывая отношение левых что к самообороне, что к сквоттерам, где даже не то что «поставьте замки получше», а «а зачем вам недвига, в которой вы не живёте 24/7?» — очень хорошая аналогия).
Этот вопрос по опыту помогает наиболее быстро понять, какой философии прав придерживается собеседник, и, в части случаев, продолжить разговор про более важную для меня лично тему об отсутствии репродуктивных прав у мужчин (потому что с мужчинами дискурс «не хочешь алиментов и ответственности — не занимайся сексом» вполне себе общепринят).
А не надо меня отличать. Речь вообще не обо мне или вас. Речь о том, почему в некоторых проектах код на хаскеле будет на порядок более выразителен, чем код на ООП-языке в ООП-парадигмах.
И именно поэтому, например, если бы нам удалось до чего-то договориться хотя бы в игрушечном примере, который показывает один из таких случаев, то можно было бы продолжить обсуждать более крупные примеры (и я бы показал конкретику на uniplate, например, или на автогенерации тестовых примеров, или тому подобных вещах). Но, увы, договориться мы не смогли даже на игрушечном примере, поэтому до чего-то более масштабного не дошло.
И именно поэтому это на самом деле иррелевантно.
Впрочем, как бы вам мой гитхаб помог сравнить мой проект с проектом другой команды, которого там, очевидно, нет, даже если бы все мои оплачиваемые работы почему-то были бы в опенсорсе?
А может и не привести. Может привести к меньшим когнитивным расходам, потому что нужно держать в голове меньше деталей и смотреть на меньшую часть кода.
Ну, щито поделать десу. С burner-акка мне ещё палиться не хватало.
Так это снова к любому коду применимо.
Как там будет выглядеть «взять переданный обработчик событий, навесить на него логгирование, и передать дальше»? Или «взять эти два обработчика событий и собрать из них третий, который выполняет первый, а затем, если первый вернул
false, выполняет второй»?Да, и в классическом ООП (без ФП-элементов вроде лямбд, которые не зря называются ФП-элементами) устраивается закат солнца руками: все эти объекты и экземпляры создаются программистом вручную, явно (что, кстати, даёт компилятору меньше простора для оптимизаций, но то другой разговор).
Вы и в сишечке можете сделать эмуляцию ООП (gtk передаёт привет), но это не делает C ООП-языком, или структуры + указатели на функции — классами.
Не, ИМХО это наоборот: так как без них получается громоздко, то техники не получают распространения. А потом приходят разработчики языка и добавляют всякие там лямбды, однострочные функции и прочую ерунду, и применений становится больше.
Я могу дать вам несколько разных определений, от чисто синтаксических до всяких там денотаций и семантик, но они здесь не нужны. Достаточно интуитивного понимания «штука, которая принимает
a, пыхтит и выдаётb». Точно так же, к слову, я смогу задать последующие уточняющие вопросы к вашему определению классов и объектов, скажем, но это не значит, что их необходимо задавать (или понимать на них ответы) для успешного программирования.А это не синтаксис, это стандартная функция.
После того, как вы прочитали и убедились, что именно он делает.
Но, впрочем, окей, спасибо, ответ я получил. Здесь только могу сказать, что для меня ответ другой, и читать вариант с
accumulateмне, конечно, проще (как и моим чисто плюсатым коллегам, почему-то так вот выходит).А, так это ещё круче. Вы придумали задачу, которой не было и про которую никто не говорил (что такое «агрегирование списка» вообще?), и подменили ей контекст обсуждения. Круто, чё.
А это как раз следует из контекста беседы, потому что иначе какой смысл отвечать вашими словами про 100% на мои слова про нестопроцентное прохождение тестов?
У меня, впрочем, и на плюсах есть пет-проект с топовым вхождением
так что я знаю, как не надо.
Сойдёт?
У вас есть какие-то подтверждающие факты для этого?
Моё поле и мой тезис: «хаскель эффективнее». Ваша цитата: «Так что в данном случае шарп с хаскелем будет 1:1.» Сиречь вы покажете, что я неправ, и победите.
Так что не ложь.
10 строк, решающих в лучшем случае половину, против одной-двух в моём случае.
Так что не ложь.
Ошибки в один список не собраны, «либо ошибка, либо комментарий» не выражено.
Так что не ложь.
Ваша цитата: «Вот пусть и там и там будет 100%, тогда можно сравнивать.»
Так что не ложь.
Увы, но нет.
Здесь согласен. Но, к сожалению, бритва Хэнлона применима и здесь.
А невежество в чём?
Никакой ненависти нет. Просто я, как обладатель премии Филдса по гендерным исследованиям я так себя идентифицирую, оставляю за собой право называть мужика мужиком, даже если он себе повесил she/her и надел юбку.
(via)
Левачество — это культ. Правачество — нет.
Первая же ссылка по тегу #antiwhite в моём файлике со ссылочками:
Darrell Brooks shared pro-Hitler memes, called for violence against white people
— его, кстати, демократы всячески пытались отмыть. Интересно вам про это было читать, или не, в вашей эхокамере не было?
Или там, не знаю, пройдём по следующим пяти (мне лень копипастить ссылки, они тоже ищутся):
Illinois church goes woke, bans music and liturgical contributions by white people
Hiring manager @dropbox explains that she makes employment decisions based on race, and that she wants “fewer white people” in her life. I have reached out to Dropbox to see how many candidates this manager has rejected in recent years and whether they will investigate.
Google is setting hard caps on how many white and Asian students universities can nominate for a prestigious fellowship, a policy that likely violates civil rights law and could threaten the federal funding of nearly every elite university in the US.
BREAKING: University of California San Diego is hosting racially-segregated college welcome programs for the families of first-year students, explicitly prohibiting white families from participating.
No Whites Allowed: Pfizer Fellowship Flagrantly Violates the Law, Lawyers Say
Тут реальные действия, в отличие от, но вы продолжаете сокрушаться над какими-то мемчиками. Господи, либтарды неисправимы.
«Умеренно левый» — это желающий отменить тюрьмы и национализировать магазины? Можно узнать, что такое «неумеренно левый» тогда?
Но я, конечно, выступаю всячески за его победу в Нью-Йорке. Вот бы только не разрешить тем, кто за него голосовал, переезжать потом в красные штаты, и вообще ништяк.
Какие конкретно права отняли? Не хотите детей — пользуйтесь контрацепцией.
С чего вы взяли?
Нет. Пока что с вашей стороны были только лозунги и ваши мнения. Логических доказательств (основа аргументации) у вас не было.
Парадокс Блаба — это не руководство к действию, если что.
Это просто код. Добавка «который выполнен в будущем» либо требует уточнений, либо не имеет смысла (потому что не несёт никакой дополнительной информации — абсолютно любой с код с тем же успехом может быть выполнен в будущем).
ФП это делает юзабельным.
«Классическое» ФП а-ля нетипизированный лисп — потому что обработчики можно композировать. Сишные указатели на функции, как мы с вами оба согласились, композировать нельзя.
«Современное» ФП а-ля обмазали системой типов посильнее — потому что о коде после этого легче рассуждать. И вам не нужно делать
interface ITextPredicateвместе сITextOrиITextAnd, вы можете просто написатьstring → bool.Я и множествами не мыслю. Мыслю максимум типами, но почти синтаксически, точно так же, как работает proof finding в некоторых языках: условно, если у меня есть функция типа a → b и другая функция типа b → c, а мне надо a → c, то очевидно, как их совместить. Даже думать не надо, ни о морфизмах, ни о категориях, ни о множествах.
В моём — любой терм, тип которого имеет стрелочку первым конструктором типов. Ну, короче, что-то вида a → b.
Кому проще и почему?
Вы там дальше про ASP.NET пишете, но у меня с ним ровно ноль опыта. В моём же опыте это оправдано тогда, когда одна и та же последовательность действий повторяется часто. Правда, тогда весь хардкод сводится к
Да. Это почти
std::accumulate(только последний принимает пару итераторов вместо одного рейнджа, аstd::ranges::accumulateпочему-то не сделали, но для дискуссии это несущественно).А вот это косвенно мой вам вопрос :]
Есть философия, что надо пользоваться стдлибкой по максимуму. Если вы придёте на конференцию по плюсам или почитаете модный блог, то там вам расскажут про
std::for_each,std::accumulate,std::inner_productкакой-нибудь, и так далее, и скажут, что их надо предпочитать голым циклам (потому что они делают код выразительнее, интент — понятнее, реализацию — безопаснее, и так далее).А есть философия, конечно, что это всё бесовское.
Вы читаете код. Оба варианта уже написаны.
Так про них-то и речь. Концепт один и тот же: сделать из двух действий третье. Просто в классическом ООП реализация такая, что за деревьями теряется лес.
Не обязательно набора. Там и один метод выносится, и этот метод обзывается «точкой конфигурации» или чем-то таким. Только смысл у него простой: он, собсна, выражает действие.
Я ни разу не мыслил малыми категориями и морфизмами, и ими там мыслить совершенно не нужно.
Я мыслю операциями «применить к каждому узлу дерева такую-то функцию и собрать результаты в новое дерево» (это
traverse), а затем, если надо, «собрать все эффекты из узлов нового дерева» (этоsequence). Никакого теорката, ничего.Тогда вам тот же вопрос, что и исходному товарищу. Что лучше,
или
?