g()()()()('al') → "gooooal"
g()('al') is a challenge whereby you need to write in as many languages as
possible code which enables the code g()('al') to return the string "goal",
the code g()()('al') to return the string "gooal", the code g()()()('al')
return the string "goooal", etc.
g()('al') is the creation of [acruikshank] who originally posed it as a
[functional programming challenge][carbonfive-challenge]. Extensive stubbornness
and misinterpretation led to its current form.
g()('al') must appear in the source.g()('al') must not be a string literal.'al' must be a string, or your language's equivalent thereof. You may
use your language's standard method of creating a string (e.x. C should
use ", ruby may use either " or ').g()('al') must be a valid [rvalue] if applicable in your language.g()('al') may not print the string. If returning a string cannot be done
in your language, you should submit rationale as to why this is impossible
for a solution which prints a string to be accepted.() calls without
modification to your solution. Therefore solutions like
this are incorrect.g('al') must return "gal".If you see a complete solution that breaks any of these rules, file a bug!
If you have a solution that is close, but does not meet these rules, submit it anyway. A close and interesting solution is better than no solution.
The more exciting solutions are original, not applying techniques that have already been discovered. The following broadly applicable techniques have already been discovered:
| Solved | Incomplete | |
|---|---|---|
| ActionScript | • | |
| Befunge | • | |
| Bel | • | |
| Brainfuck | • | |
| C | • | |
| C# | • | |
| C++ | • | |
| Clojure | • | |
| Coffeescript | • | |
| Common Lisp | • | |
| D | • | |
| Dart | • | |
| [DYLD] | • | |
| Emacs Lisp | • | |
| English | • | |
| [Finite State Transducer][fst] | • | |
| Forth | • | |
| GNU Octave | • | |
| Go | • | |
| Groovy | • | |
| Haskell | • | |
| Haxe | • | |
| IO | • | |
| Java | • | |
| JavaScript | • | |
| Julia | • | |
| Kotlin | • | |
| Lua | • | |
| Mathematica | • | |
| Nimrod | • | |
| Nix | • | |
| OCaml | • | |
| Objective-J | • | |
| PHP | • | |
| PHP 7 | • | |
| Perl | • | |
| Python | • | |
| R | • | |
| Raku | • | |
| Regexp | • | |
| Ruby | • | |
| Rust | • | |
| Scala | • | |
| Scheme | • | |
| Sed | • | |
| Bourne Shell | • | |
| TCL | • | |
| [XP][xp-lang] | • | |
| ZSH | • |
Help out, add some more languages!
Lets play [golf]! Submit a pull-request with a shorter solution for an already solved language and you can get the title of shortest, as shown in that language's [README][c-sharp-readme].
Note: I'm not done making READMEs for all the languages yet. Don't let that stop you!
These are some of the editor's favorite submissions:
//: # (Solu
No open issues yet, or sync has not completed.