#Brachylog
Brachylog is a declarative code golf language created by me, Fatalize, in summer 2015.
Brachylog is intended to be a short-handed version of Prolog (of SWI-Prolog, specifically), which allows to chain predicates using implicit variables, implicit unification and implicit logic AND.
A brachylog program is always constitued of a main predicate which has two arguments called Input and Output (represented in the code by ? and . respectively). In general, every predicate in Brachylog (built-ins included) has one Input and one Output argument.
The program is entirely written on one line, and things get processed left to right. Predicates call will use the variable immediatly to the left of the predicate as Input and the variable immediatly to the right of the predicate as Output.
One can easily declare new predicate rules and entirely new predicates using | and {} respectively, which is much shorter than the Prolog standard, e.g. new_predicate(Input,Output) :-.
Due to the lackluster JPL library which allows to call an SWI-Prolog engine from a Java application, it is recommended that you run your code using the compiled SWI-Prolog file rather than looking at the result given by the Java application after your code gets compiled.
###Missing features
- Additional built-in predicates (some letters are left, and one can implement two characters predicates using
$ or @ as modifiers for example). - Constraint arithmetics. The CLPFD library is much more powerful than the basic arithmetic tools in Prolog for solving arithmetic problems with constraints. One can use the
# char as a modifier to implement CLPFD predicates. - Bugs, fixes. The
findall is pretty bad in its use as the moment. Some predicates are don't work well with different types of inputs (e.g. behead on a string of one element).
Development of the language is stopped at the moment due to a lack of available time (and the disappointment left by the JPL library). You can let me know if you are interested in working on this by commenting this answer.