Introducción
En este desafío, su tarea es enumerar correctamente los casos de dos sustantivos finlandeses. El giro es que puede usar uno de los listados como guía para producir el otro.
Los sustantivos
Utilizamos las siguientes dos tablas de declinación como nuestros datos. Enumeran los casos de dos sustantivos, un caso por línea en el mismo orden que en el artículo de Wikipedia vinculado anteriormente, en la forma singular: plural cuando corresponda.
Tabla 1: Casos de ovi ("puerta")
ovi : ovet
oven : ovien
oven : ovet
ovea : ovia
ovessa : ovissa
ovesta : ovista
oveen : oviin
ovella : ovilla
ovelta : ovilta
ovelle : oville
ovena : ovina
oveksi : oviksi
ovin
ovetta : ovitta
ovine
Tabla 2: Casos de jalka ("pie")
jalka : jalat
jalan : jalkojen
jalan : jalat
jalkaa : jalkoja
jalassa : jaloissa
jalasta : jaloista
jalkaan : jalkoihin
jalalla : jaloilla
jalalta : jaloilta
jalalle : jaloille
jalkana : jalkoina
jalaksi : jaloiksi
jaloin
jalatta : jaloitta
jalkoine
La tarea
Su tarea es escribir dos programas f
y g
(posiblemente con diferentes nombres) que toman una cadena como entrada, dan una cadena como salida y tienen la siguiente propiedad. Si la Tabla 1 se proporciona f
como entrada, genera la Tabla 2, y si se proporciona la Tabla 2 g
, genera la Tabla 1. Todas las demás entradas dan como resultado un comportamiento indefinido. Las tablas deben aparecer exactamente como se indica arriba tanto en la entrada como en la salida. Opcionalmente, puede suponer que hay una nueva línea final, pero luego debe usarse en ambas tablas, y tanto en la entrada como en la salida. No hay una nueva línea precedente.
Reglas y bonos
Puede escribir f
y g
como funciones o programas completos, pero deben ser del mismo tipo y deben estar completamente separados (si escribe una función auxiliar f
, debe volver a escribirla g
si desea usarla allí) . El conteo total de bytes más bajo gana, y las lagunas estándar no se permiten.
Hay una bonificación de -25% por no usar expresiones regulares.
Algunas aclaraciones
Está perfectamente bien escribir una función / programa f
que ignore su entrada y siempre devuelva la Tabla 2, y una función / programa g
que siempre devuelva la Tabla 1. Solo se requiere eso y ; el comportamiento de y en todas las demás entradas es irrelevante.f(Table 1) == Table 2
g(Table 2) == Table 1
f
g
La parte "completamente separada" significa lo siguiente. Su respuesta proporciona dos piezas de código, una para f
y otra para g
, preferiblemente en diferentes cuadros de código. Si pongo el código f
en un archivo y lo ejecuto, funciona, y lo mismo para g
. Su puntaje es la suma de los recuentos de bytes de las dos piezas de código. Cualquier código duplicado se cuenta dos veces.
f
como entrada"
if Table 1 is given `f` as input
¿Cómo se ingresa una función en una tabla? No entiendo esta parte