introduzione
In questa sfida, il tuo compito è elencare correttamente i casi di due nomi finlandesi. Il colpo di scena è che puoi utilizzare uno degli elenchi come guida per produrre l'altro.
I nomi
Usiamo le seguenti due tabelle di declinazione come nostri dati. Elencano i casi di due sostantivi, un caso per riga nello stesso ordine dell'articolo di Wikipedia collegato sopra, nella forma singolare: plurale ove applicabile.
Tabella 1: Casi di ovi ("porta")
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
Tabella 2: Casi di jalka ("piede")
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
L'obiettivo
Il tuo compito è scrivere due programmi f
e g
(possibilmente con nomi diversi) che accettano una stringa come input, forniscano una stringa come output e abbiano la seguente proprietà. Se la tabella 1 viene assegnata f
come input, genera la tabella 2 e se viene fornita la tabella 2 g
, genera la tabella 1. Tutti gli altri input determinano un comportamento indefinito. Le tabelle devono apparire esattamente come sopra sia in input che in output. Si può facoltativamente supporre che esista una newline finale, ma deve essere utilizzata in entrambe le tabelle, sia in input che in output. Non esiste una nuova riga precedente.
Regole e bonus
Puoi scrivere f
e g
come funzioni o programmi completi, ma devono essere dello stesso tipo e devono essere completamente separati (se scrivi una funzione di supporto per f
, devi riscriverla g
se vuoi usarla lì) . Il conteggio dei byte totali più basso vince e le scappatoie standard non sono ammesse.
C'è un bonus del -25% per non usare espressioni regolari.
Alcuni chiarimenti
È perfettamente corretto scrivere una funzione / programma f
che ignori il suo input e restituisca sempre la Tabella 2, e una funzione / programma g
che restituisca sempre la Tabella 1. È necessario solo che e ; il comportamento di e su tutti gli altri input è irrilevante.f(Table 1) == Table 2
g(Table 2) == Table 1
f
g
La parte "completamente separata" indica quanto segue. La tua risposta fornisce due parti di codice, una per f
e una per g
, preferibilmente in diverse caselle di codice. Se inserisco il codice f
in un file e lo eseguo, funziona e lo stesso per g
. Il tuo punteggio è la somma dei conteggi dei byte dei due pezzi di codice. Qualsiasi codice duplicato viene conteggiato due volte.
f
come input"
if Table 1 is given `f` as input
Come si inserisce una funzione in una tabella? Non capisco questa parte