Wikipedia’s Utopian Platform for Open Collaboration
The University of Melbourne
The story of the search for the perfect language is the story of a dream and of a series of failures. (Eco 1995, 19)
The front page of The Signpost on 1 January 2023. (Bayer 2023)
The Wikifunctions logo, incorporating lambda (\(\lambda\)). wikifunctions.org
The Architecture of the Abstract Wikipedia project (“Extension:WikiLambda” 2024). by jdforrester CC BY-SA 4.0
Beyond natural language:
The conclusion is that the Wikimedia movement does not believe that language is the right dimension to split knowledge—it is a historical decision, driven by convenience. (Vrandečić 2020, 182)
Beyond programming languages:
Wikifunctions is not a programming language, nor is trying to evangelise a particular language
Wikifunctions will allow for functions to be implemented in a multitude of programming languages. The possibility to compose functions together to create higher level functions may look a little bit like a new programming language, but it will be extremely limited compared to most other programming languages, since we only allow for nested function calls and that’s it. (“Wikifunctions:What Wikifunctions Is Not” 2024)
Universality (a là Esperanto):
Imagine a programming system that truly is accessible, one that is open not only to speakers of English but to billions of people more who will not have to learn English first in order to learn how to program. (“Wikifunctions:Vision” 2023)
Perfection (a là Earthsea Old Speech):
… we do not really think of function composition as a new programming language, but rather as an abstract syntax tree to compose function calls together, but this difference may be purely terminological. (Blanton et al. 2022)
Function Z802 in Bangla
\[ Y = \lambda f. \ (\lambda x.f\ (x\ x))\ (\lambda x.f\ (x\ x)) \]

static createInternal_( zobjectJSON, scope, parentPointer ) {
if ( isString( zobjectJSON ) || zobjectJSON instanceof ZWrapper ) {
return zobjectJSON;
}
let result;
if ( isZEnvelope( zobjectJSON ) ) {
result = new ZEnvelopeWrapper(); // eslint-disable-line no-use-before-define
} else {
result = new ZWrapper();
}
result.setScope( scope );
result.parent_ = parentPointer; // will use parent in case scope does not exist
result.populateKeys_( zobjectJSON );
return result;
}The equivalent of the eval or eval-dispatch function in the function orchestrator. Source: src/ZWrapper.js in Massaro et al. (2024).
Through the production of new forms of abstraction, the hacker class produces the possibility of the future. (Wark 2004, sec. 077)