Kiki bills itself as the “array programming system of unknown origin.” We thought it reminded us of APL which, all by itself, isn’t a bad thing.
The announcement post is decidedly imaginative. However, it is a bit sparse on details. So once you’ve read through it, you’ll want to check out the playground, which is also very artistically styled.
If you explore the top bar, you’ll find the learn button is especially helpful, although the ref and idiom buttons are also useful. Then you’ll find some examples along with a few other interesting tidbits.
One odd thing is that Kiki reads right to left. So “2 :* 3 :+ 1” is (1+3)2 not (23)+1. Of course, you can use parentheses to be specific.
If you are jumping around in the tutorial, note that some cells depend on earlier cells, so randomly pressing a “run” button is likely to produce an error.
Would you use kiki? There are plenty of array languages out there, although perhaps none that have such poetic documentation. Let us know if you have a favorite language for this sort of thing and if you are going to give Kiki a try.
If you want to try old school APL, that’s easier than ever.

It’s called RPN (Reverse Polish Notation).
Invented by Jan Lukasiewicz whose work in building a new (non-aristotelician) logic is massive ! And this in turn would prove central to the development of the computer (as a materialization of the new logic). Frege’s Begriffsschrift is also quite amazing in that regard, because it is the foundation of a logical language entirely abstract and separated absolutely from natural language. It is a language the symbolic meaning of which id entirely self-referential. It was also written in a bi-dimensional style. Whereas logic as defined by Aristotle and until Frege was mainly about the syntax of natural language (which did not permit easily what would become the logical basis of electronics). Another exception to aristotelician thought must be Babbage.
I typically use Lukasiewicz notation for Symbolic Logic (vs Principia notation, which is more common), and, being a long-time LISP programmer, I find the whole concept attractive. However, what I’m seeing in Kiki does not parse like Lukasiewicz notation., and Lukasiewicz notation is Polish notation, not RPN.
Not RPN (formally Postfix notation).
THis is right-associative infix. We think of algebra as, generally, left-associative with precedence by operator– generally, as conventional algebraic notation has special cases, such as exponents and unary negation– but this is (as far as I understand the structure) strict right-associative, with parentheses to group.
Contrast this to prefix notation (the closest we generally see are languages in the LISP-ish genealogy– DYlan, Clojure, Racket, Scheme, for example– though they are usually parenthesized for parameterization)
I don’t think it’s even JUST right-assoc infix, because AFAICT the operators are reversed as well. (IOW, “1 :+ 3” written LTR would become “3 +: 1”.) The article description may actually have been the most accurate one: it reads right-to-left.
You know, I take that back, because then you have lines like “kick: (t :! 4) := 0”, which is CLEARLY LTR. “The definition of kick: if t is not 4 (?), set kick to 0”. You can’t read that RTL and make sense of it. I don’t get why they would use LTR syntax with right-assoc math.
(Looking again, It seems to be “if t is not a multiple of 4”.)
Referring specifically to the example in the HaD article, it appears to be right-associative. It is most assuredly not Postfix (RPN). The language as a whole seems to, like most, to not clearly fit a right-associative nor left-associative model for all cases. Without digging a bit, and I have no real desire to at this point unless I find a use case, I can not speak to the language as a whole.
Right-associative operators are kind of non-intuitive to most people, except for the obvious cases like assignment (which some languages still manage to make a mess of)
The documentation looks in the same vein as Why’s (Poignant) Guide to Ruby.
Looks like generated word soup. Github / git links don’t show the repo. Doubt it has any functional purpose, other than “I promoted an LLM. Look, it’s art”
Big eyerolls from me.