Диалект Python’а приблизит его к языкам функционального программирования

24 июня 2016, 15:31

Многие поклонники Python ждали, когда язык адаптируется к возможностям функционального программирования, пишет Infoworld.com. Coconut, новый диалект Python с открытым исходным кодом, предоставляет новый синтаксис для использования возможностей, доступных в функциональных языках вроде Haskell и Scala.

Читать далее...

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

Диалект предлагает более элегантные и читабельные способы делать вещи, которые Python уже умеет.

Так, аргументы могут быть переданы в функцию при помощи отдельного синтаксиса. В этом случае print(“Hello, world!”) превратится в “Hello, world!” |> print. Для лямбда функций также есть более очевидный способ написания: (x) -> x**2 вместо lambda x: x**2.

Сравнение с шаблоном — удобное поведение, недоступное в нативном синтаксисе Python, но имеющееся во многих других современных языках программирования. Значения могут быть протестированы на предмет соответствия определённому шаблону, и в случае совпадения переменные отправляются как аргументы в функцию. Это похоже на работу регулярных выражений, но Coconut позволяет сравнивать не только строковые данные. Например, перечень входящих объектов можно сравнить со списком предполагаемых типов данных.

Отладка была проблемой многих языков, компилировавшихся в JavaScript до появления sourcemaps. Coconut предлагает похожее решение: в компиляторе можно сделать так, что каждая строка Python-кода будет снабжена комментарием с отсылкой к соответствующей строке в исходном Coconut-коде.

Создатели хотят, чтобы язык был логическим продолжением Python, а не заменой для него. Все приложения Python также являются актуальными для Coconut; диалект может опираться на существующий реестр библиотек и расширений. 

Обсуждение