Una celebración de las muchas caras de APL
Dada una cadena entre las de la columna 1 o la columna 2 de la tabla siguiente, devuelva el vecino de la cadena a su derecha. En otras palabras, si se le da una cadena en la columna 1, devuelva la cadena de la columna 2 en esa fila, y si se le da una cadena en la columna 2, devuelva la cadena de la columna 3 en esa fila.
Los puntos de código (que no sean :
's) se enumeran en el extremo derecho.
columna 1 columna 2 columna 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
Anécdota: la mayoría de estos símbolos son válidos o propuestos en algún dialecto APL (todos son enlaces).
Por solicitud, solo los símbolos:
:⊢ ⍡ ⊣:
:▷ ⍢ ◁:
:⋆ ⍣ ⋆:
:∘ ⍤ ∘:
:○ ⍥ ○:
:≀ ⍨ ≀:
:∧ ⍩ ∨:
Python 3 ,
140137116 bytesPruébalo en línea!
fuente
:
ojos.Jalea , 56 bytes
Un programa completo
Pruébalo en línea!
Nota: (
ɱaɲ
!) Si bien hay un patrón en los no:
ordinales (columna central casi consecutiva, muchos izquierdos y derechos son los mismos, solo dos por uno y uno por diez), simplemente no parece suficiente para tal pequeño conjunto de datos para permitir cualquier byte guardado sobre esto.Los primeros trece bytes también podrían ser
“¡ÐɼU¹’ṃ“"%#‘
.¿Cómo?
fuente
PHP , 147 bytes
Pruébalo en línea!
fuente
array_flip
!array_flip
es uno o dos bytes más cortos como alternativaarray_search
y el multibyte en este caso cuesta mucho bytes. No es agradable estar más tiempo como C #05AB1E ,
585654 bytesPruébalo en línea!
Explicación
El método anterior debería funcionar con cualquier número en el rango
[8676 ... 8728]
, por lo que si puedo encontrar un número allí que se pueda generar en 3 bytes, podría guardar un byte sobre la solución actual.fuente