A programming language that promotes functional programming for everyone.
Explore the docs »
Report Bug
.
Request Feature
.
Join the community
Plume is a programming language that aims to be as simple as existing languages like Python. It has a great learning curve, permitting users either to perform simple tasks or to accomplish large projects.
Its syntax has been designed to be non-aggressive and free, resulting in a pleasant-to-use and very extensible language. Plume supports some very cool features such as:
- Powerful data structures enabled with ADTs let you take serious advantage of the language type system
- Extension system, allowing you to define generalized behaviors for your types
- Strict type system, letting you serenely compile your programs without worrying about runtime errors
- Safe standard library to avoid basic but hard-to-find bugs
- Macro system to expand actual syntax and to avoid unnecessary function calls
These are some of the language features available with Plume. But it still has other interesting properties to offer to you like platform-independent code or binary (because it either runs on a virtual machine or compiles down to WASM), great runtime performances, and so on..
Plume has been built using Haskell and some specific libraries
This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.
You need to install these dependencies in order to compile and run Plume.
- GHC (
>= 9.8.1
): https://www.haskell.org/get-started/ - Cabal (
>= 3.0
): https://www.haskell.org/cabal/
You could alternatively have installed GHCup which is an universal dependency manager for Haskell based tools.
- Clone the repo
git clone https://github.com/plume-lang/plume.git
- Update fetched Cabal packages
cabal update
- Install or run Plume
cabal install # or cabal run in order just to run it
See the open issues for a list of proposed features (and known issues).
Contributions are what make open-source communities such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- If you have suggestions for adding or removing projects, feel free to open an issue to discuss it, or directly create a pull request after you edit the README.md file with the necessary changes.
- Please make sure you check your spelling and grammar.
- Create individual PR for each suggestion.
- Please also read through the Code Of Conduct before posting your first idea as well.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
- Sisypheus - Programming language designer - Sisypheus - Built most of the language