Обновить

Комментарии 11

Ну в это вряд ли кто поверит))

Есть и такое решение: Scala = ∞ ))

А вообще подразумевалось, что Scala идемпотентна операции добавления в неё Пролога.

Почти)

читаю эти статьи и диву даюсь, чего только эта ваша скала только не умеет

Не переживайте, у Scala хватает и недостатков))
Но среди других языках, используемых в продуктовой разработке, Scala действительно обладает, пожалуй, наиболее широким набором возможностей.
Присоединяйтесь!))

Кстати, интересно было бы почитать и про недостатки

Недостатки языка я уже не раз упоминал на Хабре. Scala охватывает очень мощные и интересные техники программирования, не вставая при этом со стула мейнстрима. Один из его слоганов - Better Java, и он вполне позволяет писать код в самом кондовом стиле, не особо выделяясь на фоне прочих популярных языков. Впрочем, это было бы кощунством)) В итоге язык получился очень перегруженным не только добавлением крутых инструментов к без того непростому легаси, но и ещё и способами их скрещивания. И сделано всё это не то чтобы очень ловко... но кое-что авторы языка исправляют со временем.

А про недостатки логического программирования в целом и в частности в Scala расскажу в продолжении.

Добрый, Сергей. Отличная статья - хотелось бы увидеть концепцию обработки ошибок. На практике ФП это выглядит впечатляюще по сравнению с императивным подходом.

Добрый день! Большое спасибо за отзыв)
Какую обработку ошибок вы имеете в виду?
В примере из статьи демонстрируется вывод реализации программы, составленной из "эффективных" бизнес-функций. В контейнер эффектов IO[_] уже встроен механизм обработки ошибок, и он оказывается встроен в выводимую программу.

Или вы имеете в виду, как в такую программу могут быть встроена бизнес-логика обработки ошибок? Этот момент постараюсь учесть в дальнейшем, когда будем разбираться с устройством Infer[_].

Точно, про бизнес-логику - понравилась концепция ZIO

посвящённого логическому программированию

Не могли бы вы в начале статьи кратко описать, что есть логическое программирование (в контексте) и чем оно отличается от ненормального программирования=)
Ждём продолжения.

Спасибо.
Что бы не подразумевалось под "ненормальным программированием", логическое не имеет к нему отношения. Вообще, на Хабре полно статей про логическое программирование. Но обычно это либо Пролог, либо его реализации на той же Scala.
Следующая часть будет посвящена теоретическому фундаменту логического программирования и её связи с теорией типов. Потом планирую рассказать, как всё это реализуется в Scala. И о том, что нужно сделать, чтобы магия сработала)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации