What is Pometo?
Pometo
is the the little APL
for the BEAM
, an auxiliary language to complement and use in your Erlang
, Elixir
and LFE
applications.
Status Of The Project
THIS PROJECT IS SUPER-EARLY, NOT SO MUCH ALPHA AS BEFORE THE DAWN OF WRITING, SOME INCHOATE SYMBOLS SCRAWLED WITH A HALF-BURNT STICK ON A CAVE WALL.
_ _
/\ | | | |
/ \ | |_ __ | |__ __ _
/ /\ \ | | '_ \| '_ \ / _` |
/ ____ \| | |_) | | | | (_| |
/_/__ \_\_| .__/|_| |_|\__,_|_____ ____ _ __
/ / | | | | __ \ / __ \ | | \ \
| || | |_|_ _ __ __ _ | | | | _____ _____ | | | |_ __ | |_ _ | |
| || | / _` | '_ \ / _` | | | | |/ _ \ \ / / __| | | | | '_ \| | | | || |
| || |___| (_| | | | | (_| | | |__| | __/\ V /\__ \ | |__| | | | | | |_| || |
| ||______\__,_|_| |_|\__, | |_____/ \___| \_/ |___/ \____/|_| |_|_|\__, || |
\_\ __/ | __/ /_/
|___/ |___/
Pometo
is a long way from being production usable - but if you want to help us get there, pile in.
Why is it called Pometo?
Pometo
is the Esperanto for little apple and Pometo
is a little APL and Esperanto words are both easily pronounceable and usually available as domains.
Why Pometo?
There are some problems that are elegantly solved with an APL
syntax and Pometo
is designed to write short, concise programmes that can be reasoned about to solve those problems.
Writing supervision trees and gen servers are not problems in that category.
Pometo
is an auxiliary language - used to write library functions which are consumed in applications not written in Pometo
.
Read more about the rationale and thinking.
Design Considerations
The normal developer of Erlang
, Elixir
and LFE
applications should not know they are calling Pometo
without reading the source code.
Pometo
libraries will be listed on hex
, they will use rebar3
to build. The data structures in Pometo will be lists
and maps
, the data-types integers
, floats
, binaries
and atoms
.
Contributing To Pometo
APL
’s traditionally have a REPL and the Pometo one is a standalone web application called rappel
.
rappel
is the runner in which development takes place.
If you wish to help develop Pometo
you should install rappel
.
The rappel
github repository has instructions for how to get up and running with rappel
and Pometo
and start contributing code.
Pometo
uses two rebar3
plugins called pometo_docs_to_tests
and pometo_docs_to_ct_tests
to turn the documentation into Eunit and Common tests respectively.
You can find the Pometo Docs To CT Tests plugin on github
You can find the Pometo Docs To Tests plugin on github
There are pages in the Implementation Reference to help you get up and running as contributors to Pometo.
We are implementing a funded Open Source Maintainers programme in conjunction with Code Your Future. CodeYourFuture is a refugee-founded and lead programme that trains disadvantaged people in software development.
The OSM programme is a post-graduation, pre-formal job transition that gives CYF graduates real world experience of software development in the wild. Because OSM contributors have no previous experience of Erlang, or Elixir or an APL this programme has a set of getting-started tasks defined.
(People who are not on the OSM programme are very welcome to ride along with the OSM introduction, but please don’t just grab tasks off the OSM list without saying hello to the core team first.)
Please read our Code of Conduct.
Contents
User Documentation
Technical Reference
- The Replicate Functions / and ⌿
- The Identity/Complex Conjugate/Plus Function +
- The Negation/Minus Function -
- The Direction/Multiply Function ×
- The Reciprocal/Divide Function ÷
- The Rho/Shape Function ⍴
- The Iota/Index Function ⍳
- The Ravel/Comma Function ,
- The Reduce Operators / And ⌿
StdLib Reference
- The ⎕debug Function
- The ⎕print_trees Function
- The ⎕make_indexed Function
- The ⎕make_lazy Function
- The ⎕force_indexing Function
- The ⎕force_unindexing Function
Errors Reference
Implementation Reference
For Contributors To (And Developers Of) Pometo
- Pometo Contributors Code Of Conduct
- Getting Started As An Open Source Maintainer Of Pometo
- Documentation Of The Erlang Code
- The Language Roadmap
- Our Development Environment
- Eek, How Do I Even Type This?
- The Development Cycle
- Our Testing
- The Toolchain And Testing
- The REPL (Read-Evaluate-Print-Loop) Rappel
- Lexer/Parser Development