# Is that possible to create a "purely functional" language with #lang?

**URL:** <https://racket.discourse.group/t/is-that-possible-to-create-a-purely-functional-language-with-lang/1186>\
**Category:** Questions & Answers\
**Created:** [July 25, 2022, 6:52pm UTC](https://racket.discourse.group/t/is-that-possible-to-create-a-purely-functional-language-with-lang/1186 "2022-07-25T18:52:56Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![z2gr8339](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/z2gr8339/32/643_2.png) [@z2gr8339](https://racket.discourse.group/u/z2gr8339)\
**Post date:** [July 25, 2022, 6:52pm UTC](https://racket.discourse.group/t/is-that-possible-to-create-a-purely-functional-language-with-lang/1186/1 "2022-07-25T18:52:57Z")

</div>

Please have a look on these questions:

[How to execute deterministic code from an untrusted third party safely?](https://stackoverflow.com/questions/73073339/how-to-execute-deterministic-code-from-an-untrusted-third-party-safely)

[Defining a "purely functional" R5RS env in Racket](https://stackoverflow.com/questions/73074984/defining-a-purely-functional-r5rs-env-in-racket)

Is that possible to create a new language (something like #lang pure-r5rs) that is a R5RS (or even Racket itself) but "purely functional"? Without side effects, I/O etc.

Thank you.

---

<div class="post-metadata">

**Author:** ![EmEf](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@EmEf](https://racket.discourse.group/u/EmEf)\
**Post date:** [July 25, 2022, 7:11pm UTC](https://racket.discourse.group/t/is-that-possible-to-create-a-purely-functional-language-with-lang/1186/2 "2022-07-25T19:11:25Z")

</div>

Christos Dimoulas [[https://users.cs.northwestern.edu/~chrdimo/](https://users.cs.northwestern.edu/~chrdimo/)] created an effect-free language from Racket for the Shill project. See paper with Moore et al. You may wish to start from the Shill implementation, but rip out the parser.

[[When I say “effect free” I don’t mean to say it excludes infinite loops.]]
