ФИО: Фам Данг Чунг Нгиа
№ ИСУ: 374806
Я выбрал OCaml, потому что этот язык имеет простой для изучения синтаксис и мощную систему типов, которая помогает уменьшить количество ошибок в процессе разработки. OCaml отлично подходит для функционального программирования, позволяет писать ясный и легко поддерживаемый код, а также поддерживает чистые функции (pure functions) и эффективную параллельную обработку.
- Haskell: Несмотря на то, что Haskell очень силён в функциональном программировании, система типов и концепции вроде monads делают его довольно сложным для изучения для меня.
- F#: Я не выбирал F#, потому что он тесно связан с экосистемой .NET, а я с ней не работаю.
- Lisp/Clojure: Хотя Clojure поддерживает параллельное программирование и eDSL, мне не очень близок синтаксис Lisp, и Clojure кажется сложнее OCaml для моих текущих целей.
- Erlang/OTP: Хотя Erlang силён в разработке распределённых систем и параллельной обработки, для этой лабораторной работы мне не нужны сложные функции распределения, и я не хочу осваивать полностью новую экосистему, так как моя цель — изучение функционального программирования.
Для лабораторной работы №4 я хочу создать простое приложение для анализа текста, где пользователь вводит текст, а приложение анализирует его, классифицирует слова и подсчитывает частоту их появления. Это базовая задача, которую можно расширить для более сложных функций обработки естественного языка (NLP).
План реализации:
- Получение и обработка данных от пользователя (введённый текст).
- Анализ текста и извлечение ключевых слов.
- Подсчёт частоты слов и отображение результатов.
- Тестирование: использование unit-тестов для проверки корректности основных функций.
- OCaml Compiler — компиляция кода OCaml.
- utop — REPL для OCaml, для интерактивного тестирования кода.
- dune — система сборки и управления проектами OCaml.
- ocamlformat — автоматическое форматирование кода по стандарту.
- ocaml-lint — проверка синтаксиса, стандартов кодирования и предупреждений.
- OUnit — unit-тестирование.
- csv — чтение и обработка CSV-файлов.
OCaml — идеальный язык для изучения и практики функционального программирования, особенно для приложений, требующих параллельной обработки и мощной системы типов, которая помогает минимизировать ошибки.