Обновить
0
2.7

Специалист по теории типов USB-кабелей

Отправить сообщение

Не обязательно. Модуль, определяющий дженерик, может скомпилироваться без конкретных типов для дженерика, который будет использоваться потом отдельно где-нибудь в другом модуле.

Что же вызывает у Вас затруднения? Давайте поговорим об этом.

Отсутствие практики на бейсике, конечно же.

Понятно, что с несколькими примерами, гуглом, и так далее, можно будет что-то написать, но это применимо для любого языка.

А что, есть спецы, не умеющие программировать на бейсике?

Не умею программировать на бейсике.

Если человек, освоивший набор скиллов A, может понять скиллы из множества B, а человек, освоивший B, понять A не может, то что это говорит о сравнительной мощности скиллов?

Вот бы сейчас free руками вызывать.

Если переводить ваш код с первого скрина на хаскель напрямую, то будет что-то такое (с 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, но неважно.

Среднему техассцу до 275-й ехать далековато!

Про raсial bias полиции и судебной системы рассказывать?

Расскажите, пожалуйста. Только сразу после рассказов о gender bias тех же систем, из которых можно сделать вывод, что мужчин притесняют.

Чем это отличается от "не хотите сквотеров — поставьте замки получше"?

Олсо, разбирал старые новости и вспомнил про этот тред и конкретно про эту аналогию.

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.”

(via)

В борьбе за всё хорошее и за доброту главное первым назваться хорошим и добрым. Потом можно призывать убить всех плохишей со спокойной и чистой моралью, да, @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.

Почти что extreme left-газетёнка зовёт фашнёй всех, кто правее себя:

Никогда такого не было и вот опять.

Вопрос привычки, видимо. Лично у меня нет никаких проблем с визуальным выделением блоков, даже несмотря на то, что отступы у меня в два пробела, скажем.

А вот код с кучей ключевых слов было бы сложнее читать.

меня вполне устраивает своим уровнем

Не вопрос. Просто тогда вашу исходную фразу о «серьёзных журналах» стоило написать как «более половины - в устраивающих меня рецензируемых журналах». Совсем другой тон, не правда ли?

Тем более, что он бесплатный. А это значит, что рецензенты там серьезные.

Не значит (для релевантного определения серьёзности).

Мне как-то надо было для гранта добить публикацию, и я написал что-то, скажем, в гипотетический «Зауральский журнал невычислительной математики». Он — Q3 в этой области, IF — где-то в окрестности вашего. Публикация бесплатная, рецензенты даже придирались по делу и мурыжили статью несколько месяцев, где-то два-три перекидывания ответами на замечания и версиями статьи было. Но это всё равно мусорный журнал и мусорная публикация, которую даже если и вспоминать, то исключительно в контексте «у меня тоже есть такой опыт, здесь нечем гордиться».

Дробление функции не всегда возможно и далеко не всегда оптимально. Дополнительный вызов, особенно, если он многократен - это большие накладные расходы.

Компилятор заинлайнит, если это важно. Ну или сами там прагму для инлайнинга навесите.

Это вот вообще не проблема.

А если ты и в Паскале в функции будешь иметь по 5-6 строк без вложений, то разницы не будет уже никакой от Питона.

Только количество церемоний и печатания вокруг создания функций означает, что этих функций у вас будет меньше, и они в среднем будут побольше.

Это вашу позицию не усилило, если честно:

(что, впрочем, противоречит и моей интуиции, надо признать, потому что я ожидал, что Dart — полудохлый и точно меньше плюсов, а оно вона как).

Как набрали? У меня оно номер телефона требует, которого у меня нет, а без него я могу только посэмплировать выборку. Сэмпл получается прикольный. Вбил pascal, получил те же 37 вакансий. Тыкнул в первую же, а там паскаль упоминается только в ключевых словах. Требования: «знания QT, CoCox, Quartus, Verilog, экспертные знания C++» ох уж этот QuickTime вместо Qt. Про паскаль ни слова.

В другой вакансии, окей, паскаль и бейсик. Кстати, сколько бейсика, если не фильтровать по visual? 74 вакансии. Очень живой язык, видимо, Почти до дельфей дотягивает.

Мне лень разбираться с бразильским рынком и узнавать, какие там агрегаторы самые популярные, и потом ещё переводить с/на португальский язык, поэтому я позволил себе спросить у chatgpt. Chatgpt говорит:

Похоже, осетра с «на порядок больше» всё же стоит урезать.

Если нужна линейка, то функция уже слишком большая, дробите её.

На хаскеле этот подход вполне норм работает.

Async плохо решает эту задачу.

Зачем вообще нужна концепция асинхронности? Пусть, скажем, любой сетевой запрос всегда блокирует (с точки зрения вызывающего кода — неважно, зашедулится ли вместо него на реальном процессоре что-то или нет).

Утверждаю, что когда человек раскрашивает листовую функцию в Async, он этим говорит, что эта функция может занять произвольное количество времени, и это достаточно важный и реалистичный случай, чтобы остальной мир про это знал. Следовательно, я хочу, чтобы компилятор до меня это знание донёс.

Да, это менее строго определённый эффект, чем, не знаю, частичность (и Maybe) или множество результатов (и [] или какой-нибудь бектрекинг), но это всё равно эффект.

но в типах, если не брать совсем экзотические системы, это не выражается

А, кстати, жаль. Было бы круто, если бы можно было получать какие-то разумные ограничения сверху на вычислительную сложность.

Или снизу, скажем, чтобы легче было доказывать отсутствие некоторого класса атак, скажем.

Я утверждаю, что не все эффекты одинаково полезны, и излишняя гранулярность усложняет написание кода. Async -- один из таких эффектов

Это повод делать системы типов более выразительными.

Но да, согласен: в некоторых языках раскраска может быть неудобной. Checked exceptions в джаве тоже неудобные, что не отменяет полезность Either.

Нужно ли его давать как первый язык программирования? Да ни в жизни :-)

Не, ну почему ж так сразу?

1
23 ...

Информация

В рейтинге
1 242-й
Зарегистрирован
Активность