Hy is a multi-paradigm general-purpose programming language in the Lisp family. It’s implemented as a kind of alternative syntax for Python. Compared to Python, Hy offers a variety of extra features, generalizations, and syntactic simplifications, as would be expected of a Lisp. Compared to other Lisps, Hy provides direct access to Python’s built-ins and third-party Python libraries, while allowing you to freely mix imperative, functional, and object-oriented styles of programming. The first thing a Python programmer will notice about Hy is that it has Lisp’s traditional parenthesis-heavy prefix syntax in place of Python’s C-like infix syntax. As in other Lisps, the value of a simplistic syntax is that it facilitates Lisp’s signature feature, metaprogramming through macros, which are functions that manipulate code objects at compile-time to produce new code objects, which are then executed as if they had been part of the original code.
Features
- Hy allows arbitrary computation at compile-time
- Hy also removes Python’s restrictions on mixing expressions and statements
- Allows for more direct and functional code
- In Hy, The with statement returns the value of its last body form
- Hy offers several generalizations to Python’s binary operators
- Operators can be given more than two arguments