Jekejeke Prolog 1.4.1 (Eager Tabling)

Jan Burse, created Nov 12. 2019 Dear All, We just uploaded a new release of Jekejeke Prolog. The following major improvements are provided: - Disjunction Inlining: The inlining is now complete so that the control constructs (;)/2, (',')/2, etc.. don't need any meta predicates implementations anymore. Disjunction is not anymore flattened. - Module "sequence": There are new predicates distinct/2 and order_by/2. The predicate distinct/2 is eager and uses variant based equality. The predicate order_by/2 is lazy and uses variant based comparison. So for the later we are not compatible with SWI-Prolog which uses msort/2. - Module "tabling": Predicates that use comparison have been streamlined and now feature a sort option. The aggregate predicates and tabling directive also recognize an eager/1 option. Eager tabling permits potentially infinite results. An example directive might read: :- table fib/2 as [type(hash),eager(true)]. We conducted various experiments with fixpoint iteration for our tabling, but defer it until our Prolog system provides delimited continuations via shift/reset. Similarly tabling is not yet parallel since certain locking primitives are not yet provided. Happy coding! Android Appstores: Google Play Download: Jekejeke Runtime