Skip to main content
2 of 3
added 2 characters in body

JavaScript (Babel), cracks my pronoun is monicareinstate's answer

The answer is 74291 bytes using only the characters [+|>], which is unfortunately too large to post here, so I've provided a GitHub repository to verify the solution.

git clone https://github.com/patrickroberts/xchars-pipeline.git
cd xchars-pipeline
npm install
npm start

Output:

!"#$%&'()*,-./0123456789:;=ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz

This output limits us to the printable ASCII characters +<>?@[]{|}~ (as Calculuswhiz points out), which means the only way to invoke a function is with the pipeline operator |>.

Essentially the pipeline operator allows f(x) to be expressed as x|>f. Other than that, the restricted source using these characters is very similar to JSF*ck. I compiled the following program using Xchars.js

console.log('!"#$%&\'()*,-./0123456789:;=ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz')

and was able to interpret it using a Babel plugin. There are two competing proposals for the pipeline operator supported by this plugin, but I opted to use the F#-style pipeline since the output of the Xchars.js compiler is not compatible with the Smart pipeline and Babel will throw the following error during compilation:

SyntaxError: Pipeline is in topic style but does not use topic reference (1:670)