Jolf es un lenguaje de golf procesal creado por @ CᴏɴᴏʀO'Bʀɪᴇɴ.
¿Qué consejos tienes para jugar al golf en Jolf?
Por favor, publique un consejo por respuesta.
Estos consejos deben ser al menos algo específicos para Jolf, por ejemplo, eliminar comentarios es una respuesta, pero no una muy buena.
Respuestas:
JavaScript retrocede
Si por alguna extraña razón Jolf no es lo suficientemente golfista, o simplemente no puede hacer frente, puede ser útil usar JavaScript eval. Esto puede suceder de una de dos maneras.
1. Diseño eval
Todo lo que se encuentra dentro
$...$
se traslada literalmente a la transpilación JS. Por ejemplo,+3$~$5
transpiles aadd(3, ~5)
. De manera equivalente,+3:~5
.2. Array eval
¡Puedes usar matrices JS en Jolf! Principalmente. Es una especie de error, pero no voy a solucionarlo. Por ejemplo:
Transpiles a:
fuente
¡Conozca sus variables de asignación automática!
Jolf tiene muchas formas de "asignar automáticamente" variables. El estándar es
γ
, que toma el valor de la siguiente expresión.Β
es lo mismo, pero convierte la siguiente expresión en un número.Además,
ζ
(zeta) es una variable inicializada para-1/12
(adivina por qué), y se puede reasignar conΖ
(Zeta).Por ejemplo, supongamos que desea comparar
I
(la cadena de entrada) con una operación sobre sí misma. Por ahora, veamos siI + I = reverse(I + I)
. Esto se escribe como, convencionalmente:Pero esto se puede reducir a:
fuente
Utilizar
@
@
es un comando que toma el siguiente carácter en el código fuente y devuelve el punto de código de ese carácter. (Por ejemplo,@X
devuelve 88.) Esto suele ser muy útil ya que puede expresar cualquier número entre 0 y 255 en dos bytes.fuente
10
realidad es el número1
y el número,0
no el número10
, por lo que es más como 10-255.Lee la fuente
A partir de ahora, hay muchas cosas indocumentadas, el
m
módulo misterioso entre ellas, que tiene muchas incorporaciones. Sin embargo, existen en la fuente, y realmente no es difícil de leer una vez que lo dominas, así que lee la fuente.fuente
m
atlético ysteriosom
.m
Odule (6 más para ir ...)Aumentar la función Arity
Cada función tiene una aridad. Por ejemplo,
+
tiene una aridad de 2. Si desea (por ejemplo) agregar 5 elementos, puede usar 5 + s ... o hacer+θ12345
. Específicamente:θ
aumenta la aridad de la función en 3.~θ
aumenta la aridad de la función principal en 3. (Entonces*+~θ345678
aumenta la aridad de la*
en 3)M
aumenta la aridad de la función en 2.~M
aumenta la aridad de la función padre en 2.;
aumenta la aridad de la función en 1.~;
aumenta la aridad de la función principal en 1.η
disminuye la aridad de la función en 1.~η
disminuye la aridad de la función padre en 1.\xad
establece la aridad de la función padre al código de caracteres del siguiente personaje.fuente
*+~θ
más*θ+
?~<char>
.Aproveche la entrada implícita
Si una función no tiene suficientes argumentos, buscará en la entrada el resto de los argumentos. Por ejemplo:
Transpilaría a:
Es equivalente a
fuente
Use
o
para almacenar valoresSimilar a cómo otros idiomas pueden asignar variables para una referencia fácil / corta, Jolf lo ha hecho
o
.Por ejemplo,
oThx
imprime la entrada más 1.Este es un ejemplo inútil, pero cuando la expresión es más complicada que
hx
eso, puede salvar algunos bytes graves.Además,
v"var name"<val>
permite un nombre de variable multi-char yV"var name"
obtiene una variable del ámbito.Gracias a Conor por explicarme esto y dar la oración anterior.
fuente
v"var name"<val>
permite un nombre de variable multi-char yV"var name"
obtiene una variable del ámbito.o
ser la variable de asignación