Jekejeke Prolog 1.3.0 (Prolog dicts and functions on Prolog dicts)

Jan Burse, created Sep 17. 2018, modified Dec 09. 2018 Dear All, We just uploaded a new release of Jekejeke Prolog. We realized Prolog dicts and functions on Prolog dicts. They have different aspects: - Syntax Extensions: We introduced a couple of syntax extensions, like postfix {} operator for Prolog dicts syntax, postfix () operator for zero argument syntax and infix '.' operator for functions on Prolog dicts. These extension don't change the underlying ISO core standard data model, instead they use ordinary compounds. - Function Expansion: It is now possible to define function expansions via a new multi-file predicate rest_expansion/2. This predicate can return a rewritten function term. Additionally it can also return sys_cond/2, which is a pair of a rewritten function term and a side condition goal to prepend. - Prolog Dicts: The module library(advanced/dict) can be imported and it will enable Prolog dicts syntax and also do pre-sorting through function expansion. The module library(advanced/func) can be imported and it will enable dot notation and allow functions on Prolog dicts. We tried to implemented the Prolog dicts with the same functionality as SWI-Prolog 7 but without the drawback that the ISO core module data model is changed. This means that in our Prolog system, despite now having Prolog dicts, a list is still built via cons cells based on the functor ('.')/2. We might do some improvements to the Prolog dicts in the future. For example the pre-sorted representation is not yet compressed, and the dot-notation is not yet call-site aware and thus can only call public functions. On the other hand we already use a Pythonesk translation. Happy coding! Android Appstores: Google Play Download: Jekejeke Runtime