Yeah a few...
Lists of things are prevalent throughout many languages, whether it be a list of things in sentences separated by a : colon, or , comma, or whatever unicode char springs to mind, or packed arrays (HTML <li> elements as a boring example), or Wikipedia formats (Bulleted lists, Numbered lists, etc.) Arity comes to mind for doing repeatable things in a straightforward way if we want. (Easier novice experience sometimes as well). Although a lambda function classically can take any number of arguments, but I'm thinking also about parameter arrays, not just a classic loop or iterator.
1. Would it help or hinder multi-arity functions if supported ? 2. Would it help or hinder variadic functions (functions with infinite arity) if supported ?
Clojure has a built-in apply function which allows you to ‘unpack’ a sequence and pass the unpacked values to a function as individual arguments. https://theburningmonk.com/2013/09/clojure-multi-arity-and-variadic-function...
Maybe this is already straightforward in the design already for the lambda compiler and the answer back to me is "we got you covered, Thad" ?
Thad https://www.linkedin.com/in/thadguidry/
On Wed, Oct 14, 2020 at 6:16 PM Denny Vrandečić dvrandecic@wikimedia.org wrote:
This is a rather technical question. If you are not interested in the inner working of the function model, feel free to safely skip this one.
Currently, a function call is represented as follows (assume, Z142 is the concatenation function): Z1K1: Z7 Z7K1: Z144 Z144K1: "Wiki" Z144K2: "data"
If we use global keys, it would look like this: Z1K1: Z7 Z7K1: Z144 K1: "Wiki" K2: "data"
The local keys in this case get expanded against the Z7K1 value, not the Z1K1 value, as is the case for all other local keys. This makes it very different than all the other objects, and requires special handling.
The suggestion is to change the representation of function calls and make them more unified compared to the other entries, i.e. like this:
Z1K1: Z7 Z7K1: Z1K1: Z144 Z144K1: "Wiki" Z144K2: "data"
So, instead of pulling the values into the Z7 object, we basically instantiate a function just like any other type, and wrap it into a Z7 to say that this is a function call. This needs one extra object, but it leads to much more uniform handling of objects.
Any thoughts?
Cheers, Denny _______________________________________________ Abstract-Wikipedia mailing list Abstract-Wikipedia@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/abstract-wikipedia