Dato un input di una stringa che rappresenta una definizione di funzione, emette la stringa con newline e spazi inseriti in modo che gli argomenti della funzione siano separati da newline e allineati.
La stringa di input seguirà il seguente modello:
Innanzitutto, inizierà con un prefisso, che è sempre lungo almeno un carattere e non contiene nessuno dei caratteri
,()
.Una parentesi aperta (
(
) segnerà quindi l'inizio dell'elenco degli argomenti.Seguirà un elenco di zero o più argomenti. Questi sono separati dalla stringa
", "
(una virgola e quindi uno spazio). Nessuno degli argomenti conterrà alcuno dei caratteri,()
.Una parentesi chiusa (
)
) segnerà la fine dell'elenco degli argomenti.Infine, può essere trovato un postfix, che è lungo zero o più caratteri e può contenere i caratteri
,()
.
La stringa di input sarà composta esclusivamente da ASCII stampabile (il che significa che non conterrà mai una nuova riga).
L'output deve essere:
Il prefisso, copiato alla lettera e la parentesi aperta.
L'elenco degli argomenti, questa volta separato non da
", "
una virgola, da una nuova riga e da tutti gli spazi necessari per allineare verticalmente il primo carattere di ciascun argomento.La parentesi chiusa e il postfisso (se esiste) alla lettera.
Dato che si tratta di code-golf , vincerà il codice più breve in byte.
Casi di test (formato: input a riga singola seguito da output seguito da double newline):
def foo(bar, baz, quux):
def foo(bar,
baz,
quux):
int main() {
int main() {
fn f(a: i32, b: f64, c: String) -> (String, Vec<i32>) {
fn f(a: i32,
b: f64,
c: String) -> (String, Vec<i32>) {
function g(h) {
function g(h) {
def abc(def, ghi, jkl, mno)
def abc(def,
ghi,
jkl,
mno)
x y z(x, y, z) x, y, z)
x y z(x,
y,
z) x, y, z)
a>>" "
è davvero intelligente ...