RFPL: Recursive Functional Programming Language
RFPL is a recursive functional programming language designed primarily for educational purposes. It introduces the concept of primitive recursion—which you can read about on Wikipedia—and can also be used for non-educational purposes, such as for fun or challenges.
Usage
Installation
Easy Way
Install ANTLR4. Clone the repository and use make to run RFPL:
$ git clone https://github.com/AMBandariM/RFPL
$ cd RFPL
$ make # Launch RFPL's interactive console
$ make journey # Start "The RFPL Journey"
Easier Way
Alternatively, you can install RFPL using pip:
$ pip install rfpl
Then run:
$ rfpl # Launch RFPL's interactive console
$ journey # Start "The RFPL Journey"
$ # or run with `python -m rfpl` and `python -m journey` if there was PATH errors.
VSCode Syntax Highlighter
To enable syntax highlighting for RFPL files in VSCode:
- Open the Extensions panel.
- Search for
RFPL. - Install the RFPL Syntax Highlighter extension, which provides highlighting for
.rfplfiles.
Development and Contribution
Translating "The RFPL Journey"
You are welcome to translate the file ./journey/journey_en.json into your native language. Submit your translation, if the translation meets our quality standards, we will include it in future releases with your name and contact information.
Future Development
Although Version 1 of RFPL is complete and published, we have plans for future improvements:
- Refactoring: Extracting 'fundamental' functions from the interpreter.
- User Experience: Implementing a robust cache and function-guessing system.
- Dependency Management: Potentially removing ANTLR and other nonessential dependencies.
Documentation
You have to experience the language and read the source code. There is no additional documentation at this time—sorry about that.
Contact Information
-
Parsa Alizadeh [parsa.alizadeh1@gmail.com]
-
AmirMohammad Bandari Masoole [ambandarim@gmail.com]
Metadata
Release files for rfpl 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| rfpl-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for rfpl-1.0.0-py3-none-any.whl |
Release files / rfpl-1.0.0-py3-none-any.whl
| Download URL | rfpl-1.0.0-py3-none-any.whl |
|---|---|
| Size | 35.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c0c3e19358ef7858f228e3af8350216cd55d3aaf57b939ccfdad46368e15cdcc
|
|
BLAKE2b-256 checksum How to use checksums |
4a73bf12d8eb69232ccf6ff53cb34b774908bcf3afbf0d35c00c2d7736dc48af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.1
|
Security for rfpl 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.