Я очень рад, что в дельфях это можно (большое достижение!), но вопрос не о дельфях, а о том, что @vadimrимел в виду.
Но если хотите поговорить о дельфях, то я не против. Как навесить требование, что типы T и U (два разных параметра дженерика) связаны каким-то констрейнтом?
Диссернет, например, мусорными журналами также называет просто любые журналы со слабой редакционной политикой (а нижний квартиль или смешной IF — это показатель низкой редакционной политики).
Впрочем, если весь наш спор об определениях, то можете заменить «мусорный журнал» на «слабый ни о чём не говорящий журнал», я не против.
У автора этой статьи есть прекрасное свойство - он приводит источники.
Для исторического обзора это естественно. Для обзора по самой математике это не очень естественно, потому что мало кто говорит «ах, сложение коммутативно? приведите ваши источники!»
Так вот, на странице 72 [2004], стр. 82 [1965], вводится понятие пары с помошью специального субстантивного (substantific) знака. Так, что если U и T термы, то (U, T) также терм для которого вводится аксиома пары.
Тогда это не ZF, только и всего. Можете работать в этой формальной системе, никто не против, но тогда, по идее, вы должны понимать, что в некоторых других формальных системах (которые, похоже, принимаются по умолчанию) этой аксиомы нет, поэтому ваше рассуждение там не работает.
Кстати, мне лень читать Бурбаки — вводится ли там аналогично фундаментальное понятие тройки? Вводится ли там аналогично фундаментальное понятие произвольного кортежа, индексированного произвольным множеством (чтобы можно было определить декартово произведение произвольного семейства множеств)? Как упорядоченность (и декартовы произведения) работает, когда индексирующее множество несчётно и вообще произвольное? Не вылезает там вдобавок к ZF ещё и C?
то разве это означает, что пара не существует? и что означает по вашему не "существует"?
Это означает, что пара не существует как примитив — для этого достаточно прочитать следующее же предложение (поясняющее предыдущее).
Это говорит о том, что первый язык легко читается любым человеком, а второй, без дополнительной подготовки именно в этом языке, не читабелен.
Я в своё время для отца делал разные вычислительные эксперименты, и, короче, код на хаскеле ему читать проще (и убеждаться, что именно там происходит, и соответствует ли оно его модели), чем на плюсах. Притом, что у него за спиной опыт фортрана в его годы, а опыта ML-подобных языков нет.
Если знания Паскаля применимы в понимании программирования в целом, то знания Хаскеля применимы только к Хаскелю и больше ни к чему вообще.
Ну вот вы паскаль знаете, а хаскель не смогли прочитать. Я паскаль не знаю, а прочитать его смог. Так что эмпирически дважды нет!
Это не отвечает на вопрос о том, что имел в виду исходный комментатор.
Вон при компиляции (тайпчекинге, в смысле) дженерика (и даже точки его вызова) конкретных типов нет, всё работает. Что такое «не всегда возможно», тоже непонятно.
Не обязательно. Модуль, определяющий дженерик, может скомпилироваться без конкретных типов для дженерика, который будет использоваться потом отдельно где-нибудь в другом модуле.
Если человек, освоивший набор скиллов A, может понять скиллы из множества B, а человек, освоивший B, понять A не может, то что это говорит о сравнительной мощности скиллов?
Если переводить ваш код с первого скрина на хаскель напрямую, то будет что-то такое (с BlockArguments):
run
\cancellationToken -> withHttp
\http -> withStream
\response -> do
result <- get http "url"
unlessM (isCompleted result ||^ isCancelled result) $
whenM (isTokenCancelled cancellationToken) (cancel result)
whenM (isCompleted result) ({- work with response -})
Скоуп точно так же виден, линейки не нужны — оказывается, если не тратить кучу строк на try / finally / end, то код становится короче, и линейки не нужны.
Дальше можно заметить, что скоупы-то совпадают, поэтому не нужно расти вправо:
run
\cancellationToken -> withHttp
\http -> withStream
\response -> do
result <- get http 'url'
unlessM (isCompleted result ||^ isCancelled result) $
whenM (isTokenCancelled cancellationToken) (cancel result)
whenM (isCompleted result) ({- work with response -})
Правда, на хаскеле никто так не пишет (потому что можно просто прибить тред), и та же задача решалась бы примерно как
run $ withHttp
\http -> withStream
\response -> do
result <- get http 'url'
case status result of
Completed -> {- work with response -}
Error -> {- handle error -}
Правда, вообще непонятно, зачем тут response, но неважно.
Чем это отличается от "не хотите сквотеров — поставьте замки получше"?
Олсо, разбирал старые новости и вспомнил про этот тред и конкретно про эту аналогию.
Twitch platforms Hassan Piker, who calls on his followers to murder property owners who don’t rent out their property: “Yeah kill them! Kill those motherfuckers and murder those motherfuckers in the streets. Let the streets soak in their fucking red capitalist blood, dude.”
В борьбе за всё хорошее и за доброту главное первым назваться хорошим и добрым. Потом можно призывать убить всех плохишей со спокойной и чистой моралью, да, @smt_one ?
Ох уж эти страшилки про project 2025. Мне один такой товарищ уже их приводил (правда, ссылался на https://www.project2025.observer/ ). Я тыкнул там в первую же страшилку, где написано «Prioritize funding for faith-based organizations» (христианский тейковер, нельзя такое, моя религия — радужный флаг с треугольничком цвета детской неожиданности слева). Так вот, если разбираться (чего аудитория страшилок никогда не делает), то оказывается, что под prioritize funding for faith-based organizations скрывается
Increasing USAID Collaboration with Faith-Based Organizations. FBOs historically have been much more successful in outreach to remote and vulnerable populations, based on trust built through decades of service. The value of collaborating with FBOs was demonstrated in the October 2020 Evidence Summit on Religious Engagement. In sub-Saharan Africa, FBOs often provide more than 80 percent of health care, especially to the extremely poor. In contrast, the Global Health Bureau historically has provided 85 percent of its funding to large U.S. NGOs with significant overhead costs, as a result of which only 20 percent–30 percent of funding reaches people in need.
Я очень рад, что в дельфях это можно (большое достижение!), но вопрос не о дельфях, а о том, что @vadimrимел в виду.
Но если хотите поговорить о дельфях, то я не против. Как навесить требование, что типы
TиU(два разных параметра дженерика) связаны каким-то констрейнтом?Диссернет, например, мусорными журналами также называет просто любые журналы со слабой редакционной политикой (а нижний квартиль или смешной IF — это показатель низкой редакционной политики).
Впрочем, если весь наш спор об определениях, то можете заменить «мусорный журнал» на «слабый ни о чём не говорящий журнал», я не против.
А чем readonly от иммутабельных отличается?
И что? Код всё равно жрёт 100% ядра процессора вот просто на ровном месте.
Или, чуть более общо, тайпкласс. Как это означает требование конкретного типа?
Для этого нужно как минимум понимать, что статус задачи — мутабельное поле, и имеет смысл его спрашивать снова.
Кстати, это busy loop, что ли? Лол. Узнаю запах старой школы.
Спасибо за ещё одну иллюстрацию vision of the anointed.
Какие конкретно права попираются при анкапе?
Для исторического обзора это естественно. Для обзора по самой математике это не очень естественно, потому что мало кто говорит «ах, сложение коммутативно? приведите ваши источники!»
Тогда это не ZF, только и всего. Можете работать в этой формальной системе, никто не против, но тогда, по идее, вы должны понимать, что в некоторых других формальных системах (которые, похоже, принимаются по умолчанию) этой аксиомы нет, поэтому ваше рассуждение там не работает.
Кстати, мне лень читать Бурбаки — вводится ли там аналогично фундаментальное понятие тройки? Вводится ли там аналогично фундаментальное понятие произвольного кортежа, индексированного произвольным множеством (чтобы можно было определить декартово произведение произвольного семейства множеств)? Как упорядоченность (и декартовы произведения) работает, когда индексирующее множество несчётно и вообще произвольное? Не вылезает там вдобавок к ZF ещё и C?
Это означает, что пара не существует как примитив — для этого достаточно прочитать следующее же предложение (поясняющее предыдущее).
Только для того, чтобы убедиться, что
whileделает то, что нужно, уже надо построить нетривиальный граф выполнения в своей голове.Ассемблер ещё больше читается по словам, в конце концов, но это не делает его проще.
Я в своё время для отца делал разные вычислительные эксперименты, и, короче, код на хаскеле ему читать проще (и убеждаться, что именно там происходит, и соответствует ли оно его модели), чем на плюсах. Притом, что у него за спиной опыт фортрана в его годы, а опыта ML-подобных языков нет.
Ну вот вы паскаль знаете, а хаскель не смогли прочитать. Я паскаль не знаю, а прочитать его смог. Так что эмпирически дважды нет!
Это не отвечает на вопрос о том, что имел в виду исходный комментатор.
Вон при компиляции (тайпчекинге, в смысле) дженерика (и даже точки его вызова) конкретных типов нет, всё работает. Что такое «не всегда возможно», тоже непонятно.
Не обязательно. Модуль, определяющий дженерик, может скомпилироваться без конкретных типов для дженерика, который будет использоваться потом отдельно где-нибудь в другом модуле.
Отсутствие практики на бейсике, конечно же.
Понятно, что с несколькими примерами, гуглом, и так далее, можно будет что-то написать, но это применимо для любого языка.
Не умею программировать на бейсике.
Если человек, освоивший набор скиллов A, может понять скиллы из множества B, а человек, освоивший B, понять A не может, то что это говорит о сравнительной мощности скиллов?
Вот бы сейчас
freeруками вызывать.Если переводить ваш код с первого скрина на хаскель напрямую, то будет что-то такое (с
BlockArguments):Скоуп точно так же виден, линейки не нужны — оказывается, если не тратить кучу строк на
try/finally/end, то код становится короче, и линейки не нужны.Дальше можно заметить, что скоупы-то совпадают, поэтому не нужно расти вправо:
Правда, на хаскеле никто так не пишет (потому что можно просто прибить тред), и та же задача решалась бы примерно как
Правда, вообще непонятно, зачем тут
response, но неважно.Среднему техассцу до 275-й ехать далековато!
Расскажите, пожалуйста. Только сразу после рассказов о gender bias тех же систем, из которых можно сделать вывод, что мужчин притесняют.
Олсо, разбирал старые новости и вспомнил про этот тред и конкретно про эту аналогию.
(via)
В борьбе за всё хорошее и за доброту главное первым назваться хорошим и добрым. Потом можно призывать убить всех плохишей со спокойной и чистой моралью, да, @smt_one ?
Либертатный марксист — это немного оксюморон. Говорю как анкап.
Ох уж эти страшилки про project 2025. Мне один такой товарищ уже их приводил (правда, ссылался на https://www.project2025.observer/ ). Я тыкнул там в первую же страшилку, где написано «Prioritize funding for faith-based organizations» (христианский тейковер, нельзя такое, моя религия — радужный флаг с треугольничком цвета детской неожиданности слева). Так вот, если разбираться (чего аудитория страшилок никогда не делает), то оказывается, что под prioritize funding for faith-based organizations скрывается