# About Julia and Lisp

**URL:** <https://discourse.julialang.org/t/about-julia-and-lisp/25119>\
**Category:** Offtopic\
**Created:** [June 10, 2019, 3:12pm UTC](https://discourse.julialang.org/t/about-julia-and-lisp/25119 "2019-06-10T15:12:17Z")\
**Posts on this page:** 3\
**Page:** 2

<div class="post-metadata">

**Author:** ![Mason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mason/32/2423_2.png) [@Mason](https://discourse.julialang.org/u/Mason)\
**Post date:** [June 20, 2019, 12:05am UTC](https://discourse.julialang.org/t/about-julia-and-lisp/25119/21 "2019-06-20T00:05:19Z")

</div>

> [@sgjanssens](#):
>
> Has it been considered to implement some very elementary pure computer algebra directly in [FemtoLisp](https://github.com/JeffBezanson/femtolisp) for use in Julia? By “elementary” I am referring to the level of symbolic algebra presented for illustrative purposes in [SICP](https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html).

Even if we could call FemtoLisp code, implementing scmutils is no breezy task. This [port to chez-scheme](https://github.com/fedeinthemix/chez-scmutils) is 71,000 lines of code. Given that femtolisp isn’t even a scheme implementation, I think that’d be a gigantic undertaking to port to femtolisp.

---

<div class="post-metadata">

**Author:** ![sgjanssens](https://avatars.discourse-cdn.com/v4/letter/s/9f8e36/32.png) [@sgjanssens](https://discourse.julialang.org/u/sgjanssens)\
**Post date:** [June 20, 2019, 10:35am UTC](https://discourse.julialang.org/t/about-julia-and-lisp/25119/22 "2019-06-20T10:35:55Z")

</div>

I was not suggesting to port scmutils to FemtoLisp.

Also, traditionally the definition of “Scheme implementation” is rather wide, and on the [FemtoLisp page](https://github.com/JeffBezanson/femtolisp) one reads things such as:

> highly compatible with Scheme, including some `R6RS` features

> it is fast, ranking among the fastest non-native-compiled Scheme implementations

> femtolisp is a simple, elegant Scheme dialect.

It seems that the below issue is more pertinent to what I had in mind, and indeed cuts it short for the time being.

> [@stevengj](#):
>
> Julia code can’t directly call femtolisp code: [export flisp in libjulia? · Issue #18029 · JuliaLang/julia · GitHub](https://github.com/JuliaLang/julia/issues/18029)

---

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [June 20, 2019, 3:48pm UTC](https://discourse.julialang.org/t/about-julia-and-lisp/25119/23 "2019-06-20T15:48:27Z")

</div>

> [@sgjanssens](#):
>
> I understood that your package works with the CSL version of REDUCE. Given that the CSL interpreter used by REDUCE is said to be [not well-documented](http://www.reduce-algebra.com/helpwanted.php) (see paragraph “CSL documentation”) it seems like a big task to implement the full underlying Lisp dialect, if anyone would want to do it.

It also works with PSL version (that’s what it was based on originally, however I deprecated that in favor for CSL since it supports unicode characters also. The REDUCE developers do not have a type system in their language, unlike Julia. So I believe that ultimately, the best solution for symbolic computation with Julia would be to port something like REDUCE into the native Julia, since they complement each other and each are missing the features the other offers.

I would certainly be happy to work on the full implementation, if funding for such a project exists… in fact I have already communicated with the REDUCE developers about how it can be done.

Unless someone funds that though, I am happy with how I developed the `Reduce` package as a demonstrator of what I would like to see fully integrated into the Julia language someday.

[Previous page](https://discourse.julialang.org/t/about-julia-and-lisp/25119.md?page=1)
