#Brachylog
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.
GitHub Repository , which contains the Prolog transpiler and the Wiki.
#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.
GitHub Repository , which contains the Prolog transpiler and the Wiki.
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.
GitHub Repository , which contains the Prolog transpiler and the Wiki.
#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 {} respectivelyGitHub Repository , which is much shorter thancontains the Prolog standard, e.g. new_predicate(Input,Output) :-.
- GitHub Repository , which contains the Java compiler and the documentation.
- An answer to the "I haven't seen that number before" challenge
- An answer to the "Is this number a prime?" challenge
- An answer to the "Emoticon facial expression recognition" challenge
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
findallis 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 bytranspiler and the JPL library). You can let me know if you are interested in working on this by commenting this answerWiki.
#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) :-.
- GitHub Repository , which contains the Java compiler and the documentation.
- An answer to the "I haven't seen that number before" challenge
- An answer to the "Is this number a prime?" challenge
- An answer to the "Emoticon facial expression recognition" challenge
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
findallis 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.
#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.
GitHub Repository , which contains the Prolog transpiler and the Wiki.
#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) :-.
- GitHub Repository , which contains the Java compiler and the documentation.
- An answer to the "I haven't seen that number before" challenge
- An answer to the "Is this number a prime?" challenge
- An answer to the "Emoticon facial expression recognition" challenge
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
findallis 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.