Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rieselhilfe/sofunlang
An Interpreter for my language "Sofun" (Stack-Oriented FUNctional programming language) written in haskell. Now with a basic type system.
https://github.com/rieselhilfe/sofunlang
esoteric-language functional-programming haskell interpreter programming-language repl sofun stack-based
Last synced: 3 days ago
JSON representation
An Interpreter for my language "Sofun" (Stack-Oriented FUNctional programming language) written in haskell. Now with a basic type system.
- Host: GitHub
- URL: https://github.com/rieselhilfe/sofunlang
- Owner: Rieselhilfe
- License: gpl-3.0
- Created: 2018-09-02T11:53:38.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-10-28T22:51:56.000Z (about 5 years ago)
- Last Synced: 2024-11-08T12:35:15.307Z (about 2 months ago)
- Topics: esoteric-language, functional-programming, haskell, interpreter, programming-language, repl, sofun, stack-based
- Language: Haskell
- Homepage:
- Size: 44.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ((λ)) Sofun: a Stack-Oriented FUNctional language
An Interpreter for Sofun (Stack-Oriented FUNctional programming language) written in haskell.
Sofun is not a programming language meant for daily usage, but to test a rather exotic combination of two paradigms:
* Stacks are used not only to store data, no, a whole sofun program consists of only **one nested stack**
* Functional concepts: everything is a function, functions can be composed, functions can be passed as arguments, there is some kind of partial applicationThis is the new haskell interpreter and REPL for sofun,
improvements over the c++ version include:
* More than 50 times faster
* Now with a basic type system
* More and better error messages, less edge cases
* far more elegant code ;)
* several tools to make working with the repl easier (a reworked debug mode, command to print out function definitions of loaded files)
* better naming of built-in functions