Skip to content

nghiaphamhb/functional_programming_lab_0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 

Repository files navigation

Эссе по выбору технологий

ФИО: Фам Данг Чунг Нгиа
№ ИСУ: 374806

Почему я выбрал OCaml

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

Почему я не выбрал другие языки

  • Haskell: Несмотря на то, что Haskell очень силён в функциональном программировании, система типов и концепции вроде monads делают его довольно сложным для изучения для меня.
  • F#: Я не выбирал F#, потому что он тесно связан с экосистемой .NET, а я с ней не работаю.
  • Lisp/Clojure: Хотя Clojure поддерживает параллельное программирование и eDSL, мне не очень близок синтаксис Lisp, и Clojure кажется сложнее OCaml для моих текущих целей.
  • Erlang/OTP: Хотя Erlang силён в разработке распределённых систем и параллельной обработки, для этой лабораторной работы мне не нужны сложные функции распределения, и я не хочу осваивать полностью новую экосистему, так как моя цель — изучение функционального программирования.

Лабораторная работа №4

Для лабораторной работы №4 я хочу создать простое приложение для анализа текста, где пользователь вводит текст, а приложение анализирует его, классифицирует слова и подсчитывает частоту их появления. Это базовая задача, которую можно расширить для более сложных функций обработки естественного языка (NLP).

План реализации:

  1. Получение и обработка данных от пользователя (введённый текст).
  2. Анализ текста и извлечение ключевых слов.
  3. Подсчёт частоты слов и отображение результатов.
  4. Тестирование: использование unit-тестов для проверки корректности основных функций.

Инструменты и ресурсы

Компилятор / интерпретатор

  • OCaml Compiler — компиляция кода OCaml.
  • utop — REPL для OCaml, для интерактивного тестирования кода.

Система сборки

  • dune — система сборки и управления проектами OCaml.

Инструменты автоформатирования и линтеры

  • ocamlformat — автоматическое форматирование кода по стандарту.
  • ocaml-lint — проверка синтаксиса, стандартов кодирования и предупреждений.

Инструменты тестирования

  • OUnit — unit-тестирование.

Поддерживающие библиотеки

  • csv — чтение и обработка CSV-файлов.

Учебные материалы

Книги

Real World OCaml

Заключение

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published