Last active
July 26, 2016 18:31
-
-
Save qrohlf/7045823 to your computer and use it in GitHub Desktop.
Ruby Hello World
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
= 1 | |
= + | |
= * + | |
= * | |
= | |
[ *( + )+ , | |
= * + , | |
= * + - , | |
, | |
= + , | |
* + + , | |
* - * + + , | |
, | |
+ + , | |
, | |
* , + + , | |
] | |
puts .map(&:chr).join |
@pboling Yes, you need to ensure that you're actually feeding the invisible unicode characters to the interpreter; you may be inadvertently stripping them during the copy-and-paste. (It appears that some or all online interpreters do this.) See this StackOverflow question.
It would be interesting to know if there are particular versions of Ruby that don't treat special whitespace unicode points as valid identifier characters. I think a Ruby feature-request to make future versions of Ruby treat all unicode whitespace as real whitespace (i.e. assume it indicates a separation between two tokens but otherwise ignore it) would probably be helpful.
Nice! Here's a readability trick:
ruby -p -e '$_.gsub!(/ +/," ").gsub!(/\u00a0+/){|m| "v#{m.size}"}' < helloworld
prints
v1 = 1
v2 = v1+v1
v3 = v2*v2+v1
v4 = v3*v2
v5 =
[v4 *(v3+v2)+v2,
v7 = v4*v4+v1,
v8 = v4*v4+v4-v2,
v8,
v7 = v7+v4,
v4*v2+v4+v2,
v4*v4-v2*v4+v3+v2,
v7,
v7+v1+v2,
v8,
v4*v4, v4+v1+v2,
v4]
puts v5.map(&:chr).join
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
That is not valid Ruby, failure on first line.
I am sure it is based on something that did work for someone somehow, anyone know how to fix it?