Jolf est un langage de golf procédural créé par @ CᴏɴᴏʀO'Bʀɪᴇɴ.
Quels conseils avez-vous pour jouer au golf à Jolf?
Veuillez poster un pourboire par réponse.
Ces conseils devraient être au moins quelque peu spécifiques à Jolf, par exemple, supprimer les commentaires est une réponse, mais pas très bonne.
Réponses:
JavaScript se replie
Si pour une raison étrange, Jolf n'est pas assez golfeur ou ne peut tout simplement pas faire face, il peut être utile d'utiliser JavaScript eval. Cela peut se produire de deux manières.
1. Eval conçu
Tout ce qui se trouve à l'intérieur
$...$
est littéralement transféré à la transpilation JS. Par exemple,+3$~$5
transpile versadd(3, ~5)
. De manière équivalente,+3:~5
.2. Tableau eval
Vous pouvez utiliser des tableaux JS dans Jolf! La plupart. C'est une sorte de bug, mais je ne vais pas le corriger. Par exemple:
Transpile vers:
la source
Connaissez vos variables d'attribution automatique!
Jolf dispose de nombreuses méthodes pour "affecter automatiquement" des variables. Le standard est
γ
, qui prend la valeur de l'expression suivante.Β
est la même chose, mais convertit l'expression suivante en nombre.De plus,
ζ
(zeta) est une variable initialisée à-1/12
(devinez pourquoi), et peut être réaffectée avecΖ
(Zeta).Par exemple, supposons que vous souhaitez comparer
I
(la chaîne d'entrée) à une opération sur elle-même. Pour l'instant, voyons siI + I = reverse(I + I)
. Ceci est écrit comme, conventionnellement:Mais cela peut se jouer jusqu'à:
la source
Utilisation
@
@
est une commande qui prend le caractère suivant dans le code source et renvoie le point de code de ce caractère. (Par exemple,@X
renvoie 88.) Ceci est souvent très utile car vous pouvez exprimer n'importe quel nombre entre 0 et 255 sur deux octets.la source
10
c'est en fait le nombre1
et0
non le nombre10
, donc c'est plus comme 10-255.Lisez la source
En ce moment, il y a beaucoup de choses non documentées - le
m
module mystérieux parmi eux, qui a beaucoup de fonctions intégrées. Cependant, ils existent dans la source, et ce n'est vraiment pas difficile à lire une fois que vous avez compris, alors lisez la source.la source
m
ysteriousm
ath.m
odule. (6 de plus à faire ...)Augmenter l'arité des fonctions
Chaque fonction a une arité. Par exemple,
+
a une arité de 2. Si vous voulez (par exemple) ajouter 5 éléments, vous pouvez utiliser 5 + s ... ou faire+θ12345
. Plus précisément:θ
augmente l'arité de la fonction de 3.~θ
augmente l'arité de la fonction parent de 3. (*+~θ345678
augmente donc l'arité de la fonction*
de 3)M
augmente l'arité de la fonction de 2.~M
augmente l'arité de la fonction parent de 2.;
augmente l'arité de la fonction de 1.~;
augmente l'arité de la fonction parent de 1.η
diminue l'arité de la fonction de 1.~η
diminue l'arité de la fonction parent de 1.\xad
définit l'arité de la fonction parent sur le code de caractère du caractère suivant.la source
*+~θ
plus*θ+
?~<char>
.Profitez de la saisie implicite
Si une fonction n'a pas suffisamment d'arguments, elle recherchera l'entrée pour le reste des arguments. Par exemple:
Transpile vers:
C'est équivalent à
la source
Utiliser
o
pour stocker des valeursSemblable à la façon dont d'autres langues peuvent attribuer des variables pour un référencement facile / court, Jolf l'a
o
.Par exemple,
oThx
imprime l'entrée plus 1.Ceci est un exemple inutile, mais lorsque l'expression est plus compliquée que
hx
cela, cela peut économiser un byteage sérieux., Également
v"var name"<val>
permet un nom de variable multi-char, etV"var name"
obtient une variable du champ d' application.Merci à Conor de m'avoir expliqué cela et d'avoir donné la phrase précédente.
la source
v"var name"<val>
permet un nom de variable multi-caractères etV"var name"
obtient une variable de la portée.o
être la variable d'affectation