Jolf é uma linguagem processual de golfe criada por @ CᴏɴᴏʀO'Bʀɪᴇɴ.
Que dicas você tem para o golfe em Jolf?
Poste uma dica por resposta.
Essas dicas devem ser pelo menos um pouco específicas para Jolf, por exemplo, remover comentários é uma resposta, mas não muito boa.
Respostas:
JavaScript voltar atrás
Se, por algum motivo estranho, Jolf não for suficientemente experiente ou simplesmente não conseguir lidar com isso, pode ser útil usar o JavaScript eval. Isso pode acontecer de duas maneiras.
1. Avaliação projetada
Qualquer coisa dentro dele
$...$
é literalmente transportada para a transpilação do JS. Por exemplo,+3$~$5
transpila paraadd(3, ~5)
. Equivalentemente+3:~5
.2. Avaliação da matriz
Você pode usar matrizes JS no Jolf! Na maioria das vezes. É meio que um bug, mas não vou corrigi-lo. Por exemplo:
Transpiles para:
fonte
Conheça suas variáveis de atribuição automática!
Jolf tem muitas maneiras de "atribuir automaticamente" variáveis. O padrão é o
γ
que leva o valor da próxima expressão.Β
é a mesma coisa, mas converte a próxima expressão em um número.Além disso,
ζ
(zeta) é uma variável inicializada-1/12
(adivinhe por que) e pode ser redesignada comΖ
(Zeta).Por exemplo, digamos que você queira comparar
I
(a sequência de entrada) com uma operação em si mesma. Por enquanto, vamos ver seI + I = reverse(I + I)
. Isto está escrito como, convencionalmente:Mas isso pode ser resolvido em:
fonte
Usar
@
@
é um comando que pega o próximo caractere no código-fonte e retorna o ponto de código desse caractere. (Por exemplo,@X
retorna 88.) Isso geralmente é muito útil, pois você pode expressar qualquer número entre 0 e 255 em dois bytes.fonte
10
na verdade é o número1
e o número0
não é o número10
, por isso é mais parecido com 10-255.Leia a fonte
A partir de agora, há muitas coisas não documentadas - o
m
módulo misterioso entre elas, que possui muitos recursos internos. No entanto, eles existem na fonte e, na verdade, não é difícil de ler quando você pega o jeito, então leia a fonte.fonte
m
ysteriousm
.m
odule. (Mais 6 ir ...)Aumentar a aridade da função
Toda função tem uma aridade. Por exemplo,
+
tem uma área de 2. Se você deseja (digamos) adicionar 5 elementos, pode usar 5 + s ... ou fazer+θ12345
. Especificamente:θ
aumenta a aridade da função em 3.~θ
aumenta a aridade da função pai em 3. (*+~θ345678
Aumenta a aridade da*
em 3)M
aumenta a aridade da função em 2.~M
aumenta a aridade da função pai em 2.;
aumenta a aridade da função em 1.~;
aumenta a aridade da função pai em 1.η
diminui a aridade da função em 1.~η
diminui a aridade da função pai em 1.\xad
define a aridade da função pai como o código do próximo caractere.fonte
*+~θ
acabar*θ+
?~<char>
.Aproveite a entrada implícita
Se uma função não tiver argumentos suficientes, ela procurará na entrada o restante dos argumentos. Por exemplo:
Transpilaria para:
É equivalente a
fonte
Use
o
para armazenar valoresSemelhante a como outros idiomas podem atribuir variáveis para referência fácil / curta, Jolf possui
o
.Por exemplo,
oThx
imprime a entrada mais 1.Este é um exemplo inútil, mas quando a expressão é mais complicada do que
hx
isso, pode salvar algumas derivações sérias.Além disso,
v"var name"<val>
permite um nome de variável com vários caracteres eV"var name"
obtém uma variável do escopo.Agradeço ao Conor por me explicar isso e pela frase anterior.
fonte
v"var name"<val>
permite um nome de variável com vários caracteres eV"var name"
obtém uma variável do escopo.o
sendo a variável atribuição