Wenn dieser Code kein Witz ist, wie auf der Erde funktioniert es?

7
%Vor%

Würde jemand gerne erklären, was das ist? Es erschien als eine Antwort in einer Frage, die ich über Code fragte, der ist zu schlau . Aber es ist zu schlau, um zu sagen, ob es nur ein Witz ist. Wenn es nicht ist, würde mich interessieren, wie es funktioniert, sollte jemand sich erklären wollen.

    
amsterdam 03.04.2009, 22:24
quelle

4 Antworten

15

BEARBEITEN: Die Person, die das ursprüngliche verschleierte Beispiel gepostet hat, gab der eigentliche Quellcode in seiner Antwort. Er schrieb auch eine korrigierte Version des verschleierten Codes , weil, wie ich bereits bemerkt habe, einige davon nicht einmal Sinn ergeben, wenn Sie die funkige Syntax entfernt haben.

Das ist ein gut verschleierter Code. Wie bei den meisten verschleierten Codes handelt es sich meist um eine Vielzahl von ternären Operatoren und eine hartnäckige Weigerung, Leerzeichen in eine normale Person einzutragen. Hier ist im Grunde das Gleiche geschrieben:

%Vor%

Die Einfügemethode ist nicht syntaktisch gültig (es fehlt ein Methodenname an einem Teil), aber das ist im Wesentlichen das, was sie tut, soweit ich das beurteilen kann. Die Verschleierung in dieser Methode ist ziemlich dick:

  1. Anstatt @l = whatever zu verwenden, verwendet es instance_variable_get() und instance_variable_set() . Schlimmer noch, es alias instance_variable_get() , um nur g() zu sein.

  2. Der größte Teil der Funktionalität wird in eine Lambda-Funktion eingeschlossen, an die der Name des @l übergeben wird. Dann ruft es diese Funktion mit der weniger bekannten Syntax von func[arg1, arg2] auf, was äquivalent zu func.call(arg1, arg2) ist.

Chuck 03.04.2009, 23:04
quelle
9

Dies scheint eine binäre Baumimplementierung in sehr wenigen Zeilen zu sein. Ich entschuldige mich, wenn mein Verständnis der Rubin-Syntax begrenzt ist:

%Vor%

Hoffe das hilft einigen ...: /

    
dustyburwell 03.04.2009 22:40
quelle
8

Es begann damit:

%Vor%

Ich glaube, ich habe es tatsächlich gebrochen, als ich es verkürzte. Die Neun-Zeilen-Version funktioniert nicht ganz. Ich hatte trotzdem Spaß. : P

Das war mein Lieblingsteil:

%Vor%

Hierbei wird die parallele Zuweisung verwendet, um einige Zeichen zu speichern. Sie könnten diese Zeile erweitern auf:

%Vor%     
Burke 03.04.2009 23:45
quelle
7

Ich habe den Originalcode gepostet. Entschuldigung, aber ich habe mir nicht die Mühe gemacht, nachzusehen, ob ich es richtig gemacht habe, und eine Menge Zeug wurde wegen weniger als Zeichen entfernt.

%Vor%

So sollte es aussehen.

    
Burke 04.04.2009 00:05
quelle

Tags und Links