docs/hylang/content.md

34 lines
1.3 KiB
Markdown

# What is Hy?
Hy (a.k.a., Hylang) is a dialect of the Lisp programming language designed to interoperate with Python by translating expressions into Python's abstract syntax tree (AST). Similar to Clojure's mapping of s-expressions onto the JVM, Hy is meant to operate as a transparent Lisp front end to Python's abstract syntax. Hy also allows for Python libraries (including the standard library) to be imported and accessed alongside Hy code with a compilation step, converting the data structure of both into Python's AST.
> [wikipedia.org/wiki/Hy](https://en.wikipedia.org/wiki/Hy)
%%LOGO%%
# How to use this image
## Create a `Dockerfile` in your Hy project
```dockerfile
FROM %%IMAGE%%:0.10
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
CMD [ "hy", "./your-daemon-or-script.hy" ]
```
You can then build and run the Docker image:
```console
$ docker build -t my-hylang-app
$ docker run -it --rm --name my-running-app my-hylang-app
```
## Run a single Hy script
For many simple, single file projects, you may find it inconvenient to write a complete `Dockerfile`. In such cases, you can run a Hy script by using the Hy Docker image directly:
```console
$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp %%IMAGE%%:0.10 hy your-daemon-or-script.hy
```