# Equivalent of Hy in Julia?

**URL:** <https://discourse.julialang.org/t/equivalent-of-hy-in-julia/42717>\
**Category:** Offtopic\
**Created:** [July 8, 2020, 10:31am UTC](https://discourse.julialang.org/t/equivalent-of-hy-in-julia/42717 "2020-07-08T10:31:46Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![dunefox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dunefox/32/12149_2.png) [@dunefox](https://discourse.julialang.org/u/dunefox)\
**Post date:** [July 8, 2020, 10:31am UTC](https://discourse.julialang.org/t/equivalent-of-hy-in-julia/42717/1 "2020-07-08T10:31:46Z")

</div>

I didn’t know where exactly to ask this, so it’s in offtopic now. 🤷‍♂️  
Recently I’ve been interested in Lisp and found Hylang, a lisp on top of Python: [The Hy Manual — hy 0.24.0 documentation](https://docs.hylang.org/en/stable/).  
This looks very interesting since libraries can be used seamlessy it appears; this makes Pythons data science, ML & scientific ecosystem accessible with a ‘full’ lisp.  
Is there something like this in Julia? So far I haven’t found anything. How difficult to integrate would something like this be in Julia? Easier because of macros?

---

<div class="post-metadata">

**Author:** ![d1cker](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/d1cker/32/9816_2.png) [@d1cker](https://discourse.julialang.org/u/d1cker)\
**Post date:** [July 8, 2020, 10:35am UTC](https://discourse.julialang.org/t/equivalent-of-hy-in-julia/42717/2 "2020-07-08T10:35:19Z")

</div>

you can try

```julia
julia --lisp

```

🙂

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [July 8, 2020, 10:36am UTC](https://discourse.julialang.org/t/equivalent-of-hy-in-julia/42717/3 "2020-07-08T10:36:14Z")

</div>

> [@dunefox](#):
>
> accessible with a ‘full’ lisp.  
> Is there something like this in Julia?

Yes. It is called “Julia”. It is a full lisp, thinly disguised with a custom infix/[M-expression](https://en.wikipedia.org/wiki/M-expression) syntax.

```julia
ulia> ex = :(f(1 + 2, a))
:(f(1 + 2, a))

julia> Meta.show_sexpr(ex)
(:call, :f, (:call, :+, 1, 2), :a)

```

---

<div class="post-metadata">

**Author:** ![simeonschaub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/simeonschaub/32/216566_2.png) [@simeonschaub](https://discourse.julialang.org/u/simeonschaub)\
**Post date:** [July 8, 2020, 10:40am UTC](https://discourse.julialang.org/t/equivalent-of-hy-in-julia/42717/4 "2020-07-08T10:40:53Z")

</div>

You might be interested in

> **[GitHub - swadey/LispSyntax.jl: lisp-like syntax in julia](https://github.com/swadey/LispSyntax.jl)**
>
> lisp-like syntax in julia. Contribute to swadey/LispSyntax.jl development by creating an account on GitHub.

`julia --lisp` gives you a femtolisp interpreter, which is actually also used by Julia internally for its parser and lowering, but there’s not really an easy way of calling into Julia. It’s also not great for interactive use, because it assumes a dumb terminal, but you can install rlwrap and then do `rlwrap julia --lisp` for a better line editing experience.

---

<div class="post-metadata">

**Author:** ![dunefox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dunefox/32/12149_2.png) [@dunefox](https://discourse.julialang.org/u/dunefox)\
**Post date:** [July 8, 2020, 12:04pm UTC](https://discourse.julialang.org/t/equivalent-of-hy-in-julia/42717/5 "2020-07-08T12:04:12Z")

</div>

I realise that Julia is quite Lisp-like but that wasn’t quite what I was looking for.

---

<div class="post-metadata">

**Author:** ![dunefox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dunefox/32/12149_2.png) [@dunefox](https://discourse.julialang.org/u/dunefox)\
**Post date:** [July 8, 2020, 12:05pm UTC](https://discourse.julialang.org/t/equivalent-of-hy-in-julia/42717/6 "2020-07-08T12:05:29Z")

</div>

LispSyntax.jl is interesting, thanks. I’ll have a closer look at it.

---

<div class="post-metadata">

**Author:** ![platawiec](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/platawiec/32/31914_2.png) [@platawiec](https://discourse.julialang.org/u/platawiec)\
**Post date:** [July 8, 2020, 12:27pm UTC](https://discourse.julialang.org/t/equivalent-of-hy-in-julia/42717/7 "2020-07-08T12:27:52Z")

</div>

Is your question about calling Python from Julia? Have you seen [https://github.com/JuliaPy/PyCall.jl](https://github.com/JuliaPy/PyCall.jl)? Through PyCall, you can access all of Python seamlessly.

---

<div class="post-metadata">

**Author:** ![thautwarm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thautwarm/32/37760_2.png) [@thautwarm](https://discourse.julialang.org/u/thautwarm)\
**Post date:** [July 9, 2020, 11:43am UTC](https://discourse.julialang.org/t/equivalent-of-hy-in-julia/42717/8 "2020-07-09T11:43:41Z")

</div>

If you want we can make one.  
However I guess macro makes this less appealing.
