Also ich versuche, ein 2D-Array von Standard-Eingabe in eine Datenstruktur in Common Lisp (SBCL) zu analysieren. Ich erwarte, dass der Eingang der Form seinParse ein 2D-Array von Eingabe in Common Lisp
1 2 3
4 5 6
7 8 9
wenn es 3 Zeilen.
Bisher habe ich diese bekommen:
(defun read-2d-array (rows &rest args)
(values (read-from-string
(concatenate 'string "#2A("
(dotimes (i rows)
(concatenate 'string "("
(apply #'read-line args)
")"))
")"))))
Das Problem dabei ist, dass, während die äußere verketten zu funktionieren scheint, Ich habe Schwierigkeiten beim Versuch, über die Schleifendurchläufe verketten und die Form erhalten:
#2A((1 2 3)(4 5 6)(7 8 9))
Jede Hilfe wird geschätzt. Vielen Dank!
Ich glaube nicht, dass die Frage die Anzahl der Zeilen und Spalten im Voraus zu wissen ist? – BRFennPocock
@BRPocock Die Funktion in der Frage hat "rows" als Argument. Da die Beispieleingabe ein Quadrat war, dachte ich, es wäre sicher anzunehmen, dass die Zahlenspalten dasselbe wären (oder zumindest bekannt wären). – jkiiski
Nur raten, dass das OP nach etwas wie einem generischen "CSV" -Leser suchen könnte, aber definitiv nicht in Frage gestellt – BRFennPocock