I don’t know anything about Jelly, but I thought it was quite different since Jelly is completely tacit in the way it handles variables, contrary to Brachylog
People used to imperative languages would try to reverse the input and append it I guess, instead of appending something unknown and imposing afterwards that it must be a palindrome
yeah it’s that one
@IFcoltransG Post them here, but I can’t guarantee I’ll implement them. I’m not super motivated to work on the language anymore as I’ve said
This was also suggested by ais523 a long time ago. Currently ᶠᵐ would be a metapredicate identifier in itself (even though we still have free single letter identifiers)
This would require quite a few changes to the transpiler. And I preferred to allow arbitrarily long metapredicate identifiers because I though it would be necessary if I ended up using Brachylog as a "real" language
Another thing; this would make the language uglier, but subscript and superscript numbers could be merged because there doesn't seem to be a case where the parser could confuse one for another. That would give you extra commands to play around with.
@IFcoltransG I don’t think I would want that cause that would make the use of superscript symbols "inconsistent". See the top starred message of this chat :p
@IFcoltransG This was also suggested by ais523 if I recall correctly. It’s true but currently it’s not needed, we still have plenty of available symbols
because if it fails it will try to backtrack and deepen vectorisation which leads to incorrect results
This is especially a problem if you’re working on unknown variables
you want predicates to apply fixed relationships on unknown variables, and not worry about possible vectorisation on that unknown variables which would mess up the meaning of what you wanted to write
Parentheses are used to group logical assertions together. The variable preceeding the opening parenthesis is implicitly available after that opening parenthesis. The last variable before the closing parenthesis is implicitly available after that closing parenthesis.
If there was a cheatsheet for every symbol in the language on one page, that would solve a lot of problems. Or an index at the back that tells you what section they're in.
Oh, another small golfing improvement for ℕ would be if it constrained > subscript rather than ≥, and the default were -1 or equivalent. That wouldn't be backwards compatible, of course, but it would save a byte when describing numbers larger than 9
Oh, and at times I didn't understand how constraint variables worked, and wished I could use Ḋ like a predicate, specifically like ṗ
It's got a lot of types, it's currently written in Prolog, and it's probably stack based That's about all so far
I'm almost considering switching it over to Python or Haskell but I should probably get a feeling for how it should actually work before I go reinvent backtracking and constraint logic
the #1 thing I'm sticking to with it is that it's homoiconic