Conseils pour jouer au golf à LOLCODE

14

Quels conseils généraux avez-vous pour jouer au golf à LOLCODE? Je cherche des idées qui peuvent être appliquées aux problèmes de golf de code en général qui sont au moins quelque peu spécifiques à LOLCODE. (par exemple, "supprimer les commentaires" n'est pas une réponse). Veuillez poster un pourboire par réponse.

Loovjo
la source
J'avais pensé à poster ça moi-même. Il n'est en fait pas impossible de jouer au golf à LOLCODE.
Alex A.
2
Un peu embarrassant, mes deuxième et troisième réponses les plus élevées sont en LOLCODE. Je vais donc profiter de cette occasion pour partager tout ce que je sais.
Alex A.

Réponses:

7

Définissez les variables en utilisant la syntaxe variable R valueplutôt que I HAS A variable ITZ value.

Si vous souhaitez définir une variable négale à 1,

n R 1

n'est que de 5 octets, alors que

I HAS A n ITZ 1

est de 15 octets.

Alex A.
la source
2
Mais alors vous perdez tout l'intérêt de LOLCODE!
Optimizer
3
@Optimizer: Pour être juste, quand y a-t-il un point à LOLCODE?
Alex A.
18
Le point de LOLCODE est bien sûr pour les lols.
user12205
1
@ace: D'accord, tu m'as là.
Alex A.
6
lol
bjb568
3

Dans de nombreuses implémentations LOLCODE, comme celle sur repl.it , HAIet KTHXBYE, qui commencent et terminent les programmes respectivement, ne sont pas nécessaires. Dans les implémentations où elles sont nécessaires, le numéro de version après HAIn'est pas nécessaire (par exemple HAI 1.2).

De même, la STDIObibliothèque est généralement chargée par défaut, elle CAN HAS STDIO?est donc également inutile.

Alex A.
la source
3

Dans de nombreux cas, il est plus court de lire les valeurs des variables depuis STDIN plutôt que de définir une fonction. Cependant, notez que GIMMEH, qui lit l'entrée de STDIN, lit toujours un YARN(c'est-à-dire une chaîne). Mais vous pouvez profiter du typage dynamique de LOLCODE et ajouter 0 pour convertir en a NUMBR.

Par exemple,

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

La définition nest de 26 octets, y compris les sauts de ligne. Comparez cela à une fonction définie par l'utilisateur:

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

Cela nécessite 28 octets.

Notez que vous pouvez également multiplier par 1 pour convertir en a NUMBR, mais cela nécessite 4 octets de plus que la somme:

GIMMEH n
n R PRODUKT OF n AN 1
Alex A.
la source
1
Mais n IS NOW A NUMBRest un octet plus court quen R SUM OF n AN 0
Leaky Nun
@LeakyNun Quelle implémentation a cela? Je ne l'ai jamais vu auparavant.
Alex A.
2

Lors de l'impression de la valeur d'une variable dans STDOUT, tenez compte des éléments suivants:

VISIBLE variable

est beaucoup plus court que

VISIBLE ":{variable}"

De plus, chaque fois qu'une nouvelle ligne de fin est acceptable,

VISIBLE variable

qui inclut un retour à la ligne par défaut, est plus court que

VISIBLE variable!

qui supprime la nouvelle ligne.

Alex A.
la source