Python: теперь и с синтаксисом Haskel

У некоторых питонистов есть и такая презабавная забава,- ругаться на синтаксис Python и предлагать всевозможные улучшения. Пользователь GitHub Pyos ушёл дальше всех, реализовав на Python проект Dogelang( сокращённо dg). Из описания на сайте следует, что dg,- это самостоятельный язык программирования, компилирующийся в байткод, примерно как Scala собирается в JVM. Кроме того, код на dg вполне работоспособен под PyPy. Что, по большому счёту значит, что dg, не больше и не меньше,- альтернативный синтаксис Python 3 (или Python3 из параллельного мира, как кому больше нравится). Ко всему прочему, это позволяет использовать все существующие и совместимые с 3-й версией языка Python библиотеки. Выглядит это примерно так:


import '/sys/stdin'

IOTools = subclass object where
  #: Compute the average line length of a file.
  #:
  #: avglen :: TextIOBase -> NoneType
  #:
  avglen = staticmethod $ fd ->
    lengths = list $ map len fd
    count   = len lengths
    total   = sum lengths
    print 'Average line length:' $ if
      count > 0 => total / count
      otherwise => 0

IOTools.avglen stdin

Конечно, синтаксис dg кому-то может показаться непривычным, а кому-то наоборот,- слишком привычным и удобным. 

Комментарии

Популярные сообщения