Uma celebração das muitas faces da APL
Dada uma sequência entre as colunas 1 ou 2 da tabela abaixo, retorne o vizinho da sequência à sua direita. Em outras palavras, se for fornecida uma string na coluna 1, retorne a string da coluna 2 nessa linha e, se for especificada uma string na coluna 2, retorne a string da coluna 3 nessa linha.
Os pontos de código (exceto :
os) estão listados na extrema direita.
coluna 1 coluna 2 coluna 3
:⊢
→ ⍡
→ ⊣:
U + 22a2 U + 2361 U + 22a3
:▷
→ ⍢
→ ◁:
U + 25b7 U + 2362 U + 25c1
:⋆
→ ⍣
→ ⋆:
U + 22c6 U + 2363 U + 22c6
:∘
→ ⍤
→ ∘:
U + 2218 U + 2364 U + 2218
:○
→ ⍥
→ ○:
U + 25cb U + 2365 U + 25cb
:≀
→ ⍨
→ ≀:
U + 2240 U + 2368 U + 2240
:∧
→ ⍩
→ ∨:
U + 2227 U + 2369 U + 2228
Anedota: A maioria desses símbolos é válida ou proposta em alguns dialetos da APL (todos são links).
Por solicitação, apenas os símbolos:
:⊢ ⍡ ⊣:
:▷ ⍢ ◁:
:⋆ ⍣ ⋆:
:∘ ⍤ ∘:
:○ ⍥ ○:
:≀ ⍨ ≀:
:∧ ⍩ ∨:
Python 3 ,
140137116 bytesExperimente online!
fonte
:
olhos.Geléia , 56 bytes
Um programa completo.
Experimente online!
Nota: (
ɱaɲ
!) Embora exista algum padrão para os não-:
ordinais (coluna do meio quase consecutiva, muitos direitos e esquerda são os mesmos - apenas dois por um e um por dez), apenas não parece suficiente para tal conjunto de dados pequeno para permitir que qualquer byte economize sobre isso.Os treze primeiros bytes também podem ser
“¡ÐɼU¹’ṃ“"%#‘
.Quão?
fonte
PHP , 147 bytes
Experimente online!
fonte
array_flip
!array_flip
é um ou dois bytes mais curto como alternativaarray_search
e, neste caso, o multibyte custa muitos bytes. Não é bom ser mais como C #05AB1E ,
585654 bytesExperimente online!
Explicação
O método acima deve funcionar com qualquer número no intervalo
[8676 ... 8728]
; portanto, se eu encontrar um número que possa ser gerado em 3 bytes, poderia salvar um byte na solução atual.fonte