Questa domanda probabilmente finirà con un facepalm, ma ci ho provato per un po 'e sono ancora bloccato nonostante la lettura attraverso l'iperspec.- Aiuto con la stampa di un tavolo
Fondamentalmente quello che voglio fare è qualcosa di simile
(format t "~{|~{ ~5d~}|~%~}" '((1 23 2 312) (23 456 1 7890)))
ma invece di codificare il 5 dovrebbe essere calcolata dalla lista (lunghezza dell'elemento più lungo da qualsiasi lista annidata + 1) per dare qualcosa come
| 1 23 2 312|
| 23 456 1 7890|
Forse sto pensando troppo complicato qua e là un modo più semplice per fare quello che voglio, ma penso che mi sono imbattuto in un angolo mentale che non riesco a uscire.
Potrebbe esserci un controllo '~' per fare ciò che vuoi, ma lo farei in 2 passaggi: calcola l'elemento più largo, quindi costruisci una stringa formato (con formato!) Usando quello, quindi chiama formattare per costruire la tabella. Quindi è una funzione a 3 linee invece che a 1 riga. :-) – Ken