Nano Hash - криптовалюты, майнинг, программирование

Действительно ли используются потоки в ocaml?

Глядя на разные проекты ocaml, я не вижу встроенных потоков в языке когда-либо использовал. Даже в недавней книге Real World Ocaml потоки вообще не упоминаются, что странно.

В чем причина этого? Это потому, что Lwt или Core заменяют их?

12.05.2015

  • Этот вопрос требует слишком много всеведения для скромного практика, чтобы ответить на него :-) Раньше я использовал потоки в небольших проектах; они элегантны. Lwt кажется ортогональным; Core может иметь лучшую реализацию потока. 12.05.2015
  • @GaintSquid, чтобы было ясно, что вы не ищете приложения или потоки, а скорее почему они «на самом деле» не используются? Если это последнее, я не знаю почему, но если это первое, я отвечу! 12.05.2015
  • @matrixanomaly Верно. Но мне также было бы интересно увидеть применение Streams в реальном программном обеспечении. 12.05.2015

Ответы:


1

Я думаю, что в значительной степени ответил на этот вопрос в этом отчете об ошибке.

12.05.2015
  • Это действительно очень показательно. Хотя предлагают сделать библиотеку для устранения зависимостей в самом ocaml, да? 13.05.2015
  • Запрос на прекращение поддержки. НЕ удаление. Это совсем другое. В любом случае, да, он будет помещен вне компилятора (и, надеюсь, больше не будет использоваться в пользу лучших библиотек). 13.05.2015

  • 2

    Потоки были неплохими с поддержкой синтаксиса camlp4, без него их практически невозможно использовать. Итак, это было в давно минувшие времена (хотя теоретически это все еще можно использовать). Согласно справке Drup, они будут даже удалены в ближайшем будущем (в этом году) из основного языка и, предположительно, будут перемещены в отдельную библиотеку.

    Все это не означает, что с потоками как со структурой данных что-то не так. Это по-прежнему очень ценный метод, используемый во многих проектах OCaml, просто они используют разные библиотеки, которые его реализуют. Есть Core Sequence, Batteries Enum, пакеты gen и sequence Саймона Круанеса, пакет fstream Джозефа Абрахамсона и многие другие.

    13.05.2015
  • Просто чтобы придраться, пакеты Саймона Круанеса — это gen и sequence. ;) 13.05.2015

  • 3

    Потоки можно использовать для «ленивых вычислений» в OCaml, тем более, что OCaml — это активный язык, есть определенно полезные случаи, когда желательны ленивые вычисления (например, в Haskell).

    Цитата из лекции о стримах в Корнелле ,

    Потоки действительно полезны в реальной жизни. Некоторые приложения:

    • компиляторы читают исходный файл из текста
    • сетевые розетки
    • обработка аудио и видео сигналов
    • распознавание голоса
    • аппроксимация решений уравнений сходящимися рядами

    В предоставленном справочнике также используются потоки для ленивого вычисления простых чисел, что очень и очень быстро по сравнению с обычным способом вычисления больших простых чисел с использованием решета Эратосфена. Поэтому я чувствую, что потоки определенно имеют свое место в языке, поскольку он допускает ленивую оценку в OCaml.

    Потоки использовались моим профессором для объяснения концепции ленивых вычислений в нетерпеливом языке, причина, по которой она не упоминается в реальном мире OCaml, может быть в том, что сам язык нетерпелив, а потоки не параллельны эта концепция и что потоки не могут быть многопоточными. (это, впрочем, предположение)

    13.05.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..