It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
For this giveaway, I really wanted to step away from brainfuck and befunge, since I used them a lot in the previous challenges. So:

_Grass:
Grass is a lambda-calculus programming language. It has a single stack that starts with the following on it: letter w (119 ascii), an output function, an input function, and an increment function (mod 255). From there you have to get everything else. You can't pop from the stack; in essence your whole program is one large lambda calculus expression.
If you like functional programming and lambda calculus, this language is worth checking out. Though it can be daunting at first, and there is comparatively little tutorials/examples for it (and mostly in Japanese).
Another lambda calculus langauge that I considered using was Unlambda. It might be more straightforward to use, but the fact that it would have been more difficult to put brainfuck characters in it (Grass just ignore non-Wwv characters), and the fact that it would have been more difficult to obfuscate made me choose grass. Plus, Grass just looks nicer for an esoteric challenge with all its Ws ws and vs.

_Piet:
I looked at Piet before making my very first challenge, and it was in fact suggested to me by Wishbone later on, but I dismissed it, mainly thinking it was more of a gimmick language. Like Whitespace, Ook or Lolcat; it just has a nice gimmick but isn't particularly otherwise interesting.
I was wrong.
This language is amazing, and if you haven't programmed in it already you really should try. Some programs out there are, literally, works of art.
Just look at the samples:
http://www.dangermouse.net/esoteric/piet/samples.html
Some very artistic programs. They include a Cow Say program that looks like a cow, a program that looks like a real Piet painting, a text adventure game and a brainfuck interpreter (of course). I also loved the one that calculates pi, literally by dividing the are of a circle by twice its radius.
Compared to those, mine is rather simple. Most push values then pop them. But I did make sure that the Ruby logo is actually part of the code, and it doesn't go around it. Attached is the trace of my program.
And I just used Paint. But there are actually some very decent development envirnments made for it. I should try them next time.

_Ruby:
Not technically an esoteric language (this is what I meant that I cheated a bit). But I did include it for a reason. It's the language of choice of Yusuke Endoh, who is perhaps *the* single best programmer when it comes to quines, and does some extremely amazing esoteric/obfuscated work. His work includes:
The rotating globe quine in Ruby which inspired my brainfuck one.
https://github.com/knoxknox/qlobe
http://mamememo.blogspot.ie/2010/09/qlobe.html
A 100+ language quine (at the moment 128). Program 0 that outputs program 1 that outputs program 2... that ouputs program 127 that outputs back program 0 all in a different language.
https://github.com/mame/quine-relay
https://github.com/mame/quine-relay/blob/master/thumbnail.png
Radiation hardened quine. A Ruby quine that outputs itself... even if any single character was removed from it randomly
https://github.com/mame/radiation-hardened-quine
Lots of his publications are in Japanese though.

_Brainfuck:
Though not used for the solution, it was nevertheless used. I won't repeat what I wrote about it before though
https://www.gog.com/forum/general/esoteric_challenge_ii_giveaway/post104

There were a few, really interesting, language that I considered using, but the problem is it would have to be a language that would be unique and somehow stand out. There are some truly nice brainfuck variants that I wanted to use, but... the problem is that although interesting, a lot of them are little know. And often they use the same characters as brainfuck. It would just be unfair to have a program made up of brainfuck characters, and have you keep trying which obscure variant of brainfuck that is.
The one other language I considered using but didn't, partly because there was no interpreter on tio.run was AsciiDots
https://esolangs.org/wiki/AsciiDots

The only thing about this challenge that I wasn't sure how to do properly was giving the clue to reverse the final code. In the end I just wrote "backwards" in the Piet image (I also considered writing "Reverse"). But this made it too easy; I wish I found a more subtle way.

Overall, it was enjoyable. Till next time.
Attachments:
Post edited October 28, 2017 by ZFR
avatar
ZFR: _Grass:
Grass is a lambda-calculus programming language. It has a single stack that starts with the following on it: letter w (119 ascii), an output function, an input function, and an increment function (mod 255). From there you have to get everything else. You can't pop from the stack; in essence your whole program is one large lambda calculus expression.
If you like functional programming and lambda calculus, this language is worth checking out. Though it can be daunting at first, and there is comparatively little tutorials/examples for it (and mostly in Japanese).
For the puzzle, I just ran the grass code through the interpreter once I'd identified it, but I tried to have a look at the language a few days later to see if I could understand it. I couldn't ;-) It's just too weird, and the description of how it works is less than stellar, I think.
avatar
ZFR: _Piet:
I looked at Piet before making my very first challenge, and it was in fact suggested to me by Wishbone later on, but I dismissed it, mainly thinking it was more of a gimmick language. Like Whitespace, Ook or Lolcat; it just has a nice gimmick but isn't particularly otherwise interesting.
I was wrong.
This language is amazing, and if you haven't programmed in it already you really should try. Some programs out there are, literally, works of art.
I'm glad you finally did something with Piet. I know I've been pestering you about it, but the end result was amazing. And I loved that you teased it from the very beginning.
avatar
ZFR: _Ruby:
Not technically an esoteric language (this is what I meant that I cheated a bit).
And one that I have never used. As such, I didn't recognize neither the syntax, nor the logo, which is why it took me quite some time to identify this one. Of course, once I did, I kicked myself, because there was a giant ruby staring at me from the Piet image :-)
avatar
ZFR: Overall, it was enjoyable. Till next time.
It certainly was. Looking forward to the next one :-)
avatar
ZFR: _Ruby:
Not technically an esoteric language (this is what I meant that I cheated a bit).
avatar
Wishbone: And one that I have never used. As such, I didn't recognize neither the syntax, nor the logo, which is why it took me quite some time to identify this one. Of course, once I did, I kicked myself, because there was a giant ruby staring at me from the Piet image :-)
Haha, glad I wasn't the only one then.
I eventually identified it by looking for languages that used a # for comments and used the various functions in the string (like puts)
I think the percentage signs helped too if I remember rightly.
Thanks for posting the solution. :)

I was lucky, I had stumbled upon the Ruby logo just the day before, so I recognized it immediately.

"Backwards" was too easy, yeah. Maybe you could have somehow included (hidden) code in another esoteric language that reverses a string of characters?

I really love these puzzles, I'm looking forward to the next one!