Tipps zum Golfen in LOLCODE

14

Welche allgemeinen Tipps haben Sie zum Golfen in LOLCODE? Ich bin auf der Suche nach Ideen, die sich auf Code-Golf-Probleme im Allgemeinen anwenden lassen, die zumindest etwas spezifisch für LOLCODE sind. (zB "Kommentare entfernen" ist keine Antwort). Bitte posten Sie einen Tipp pro Antwort.

Loovjo
quelle
Ich hatte darüber nachgedacht, dies selbst zu posten. In LOLCODE ist Golfen eigentlich nicht unmöglich.
Alex A.
2
Etwas peinlich sind meine zweit- und dritthöchsten Antworten in LOLCODE. Ich werde diese Gelegenheit nutzen, um alles, was ich weiß, zu teilen.
Alex A.

Antworten:

7

Definieren Sie Variablen nicht mithilfe der Syntax, variable R valuesondern mithilfe der Syntax I HAS A variable ITZ value.

Wenn Sie eine Variable ngleich 1 setzen wollen,

n R 1

ist nur 5 Bytes, während

I HAS A n ITZ 1

ist 15 Bytes.

Alex A.
quelle
2
Aber dann verlierst du den ganzen Sinn von LOLCODE!
Optimierer
3
@Optimizer: Um fair zu sein, wann hat LOLCODE überhaupt einen Sinn?
Alex A.
18
Der Punkt von LOLCODE ist natürlich für die Lols.
user12205
1
@ace: Okay, du hast mich da hingebracht.
Alex A.
6
lol
bjb568
3

In vielen LOLCODE-Implementierungen, z. B. in repl.it , HAIund KTHXBYE, die Programme beginnen und beenden, sind keine weiteren erforderlich . In Implementierungen, in denen sie erforderlich sind, ist die Versionsnummer nach HAInicht erforderlich (z HAI 1.2. B. ).

Ebenso wird die STDIOBibliothek in der Regel standardmäßig geladen, CAN HAS STDIO?ist also auch nicht erforderlich.

Alex A.
quelle
3

In vielen Fällen ist es kürzer, Variablenwerte aus STDIN zu lesen, als eine Funktion zu definieren. Beachten Sie jedoch, dass beim GIMMEHLesen von Eingaben aus STDIN immer ein YARN(dh ein String) gelesen wird . Sie können jedoch die dynamische Eingabe von LOLCODE nutzen und 0 hinzufügen, um sie in eine umzuwandeln NUMBR.

Beispielsweise,

GIMMEH n
n R SUM OF n AN 0    
... (operations on n)

Die Definition numfasst 26 Bytes, einschließlich Zeilenumbrüchen. Vergleichen Sie dies mit einer benutzerdefinierten Funktion:

HOW DUZ I f YR n
    ... (operations on n)
IF U SAY SO

Dies erfordert 28 Bytes.

Beachten Sie, dass Sie auch mit 1 multiplizieren können, um in a zu konvertieren NUMBR, dies erfordert jedoch 4 Bytes mehr als die Summe:

GIMMEH n
n R PRODUKT OF n AN 1
Alex A.
quelle
1
Aber n IS NOW A NUMBRist ein Byte kürzer alsn R SUM OF n AN 0
Leaky Nun
@LeakyNun Welche Implementierung hat das? Ich habe es noch nie gesehen.
Alex A.
2

Beachten Sie beim Drucken des Werts einer Variablen in STDOUT Folgendes:

VISIBLE variable

ist viel kürzer als

VISIBLE ":{variable}"

Auch, wenn ein abschließender Zeilenumbruch akzeptabel ist,

VISIBLE variable

die standardmäßig eine nachgestellte Zeile enthält, ist kürzer als

VISIBLE variable!

das unterdrückt die newline.

Alex A.
quelle