распечатать список списков в 2 или 3 столбцах в Лиспе - PullRequest
0 голосов
/ 02 мая 2020

У меня есть сомнения по поводу того, как напечатать список списков в форме столбца, я пробовал несколько способов, но ни один из них не работает, и я использовал несколько текстовых форматов, но это не выходит, как ожидалось, какие-либо предложения?

(defun states ()
  '(((0 0 0 0 0 0 0) 
     (0 0 X 0 0 0 0) 
     (0 0 0 0 0 0 0) 
     (0 0 0 T 0 0 0)  
     (0 0 0 0 0 0 0)) ;;first
    ((0 0 0 0 0 0 0) 
     (0 0 0 0 0 0 0) 
     (0 0 0 0 0 X 0) 
     (0 0 0 T 0 0 0)  
     (0 0 0 0 0 0 0)) ;;second
    ((0 0 0 0 0 0 0) 
     (0 0 0 0 0 0 0) 
     (0 X 0 0 0 0 0) 
     (0 0 0 T 0 0 0)  
     (0 0 0 0 0 0 0)) ;;third
    ((0 0 0 0 0 0 0)  
     (0 0 0 T 0 0 0) 
     (0 0 0 0 0 0 0) 
     (0 0 X 0 0 0 0) 
     (0 0 0 0 0 0 0)))) ;;fourth

(defun test-print ()
  (format T "~%--- Result ---")
  (mapcar #'(lambda(x) (print-state x)) (states)))

(defun print-state (x)
  (format T "~%")
  (mapcar (lambda (x) (format T "~@T~@T~@T~@T~@T ~A ~%" x)) x)
  (format NIL ""))

;;test print
(test-print)

вы можете проверить и увидеть результат в ideone.com , как в этом примере

--- Result ---
      (0 0 0 0 0 0 0) 
      (0 0 X 0 0 0 0) 
      (0 0 0 0 0 0 0) 
      (0 0 0 T 0 0 0) 
      (0 0 0 0 0 0 0) 

      (0 0 0 0 0 0 0) 
      (0 0 0 0 0 0 0) 
      (0 0 0 0 0 X 0) 
      (0 0 0 T 0 0 0) 
      (0 0 0 0 0 0 0) 

      (0 0 0 0 0 0 0) 
      (0 0 0 0 0 0 0) 
      (0 X 0 0 0 0 0) 
      (0 0 0 T 0 0 0) 
      (0 0 0 0 0 0 0) 

      (0 0 0 0 0 0 0) 
      (0 0 0 T 0 0 0) 
      (0 0 0 0 0 0 0) 
      (0 0 X 0 0 0 0) 
      (0 0 0 0 0 0 0) 

, и я хочу напечатать эти списки в два или 3 столбца, как в этом примере

--- Result ---
    (0 0 0 0 0 0 0)  (0 0 0 0 0 0 0) 
    (0 0 X 0 0 0 0)  (0 0 0 0 0 X 0)
    (0 0 0 0 0 0 0)  (0 0 0 T 0 0 0) 
    (0 0 0 T 0 0 0)  (0 0 0 0 0 0 0) 
    (0 0 0 0 0 0 0)  (0 0 0 0 0 0 0) 

    (0 0 0 0 0 0 0)  (0 0 0 0 X 0 0) 
    (0 0 0 0 0 0 0)  (0 0 0 0 0 0 0)
    (0 0 0 0 0 0 0)  (0 0 0 T 0 0 0) 
    (0 0 0 T 0 0 0)  (0 0 0 0 0 0 0) 
    (0 0 0 0 0 X 0)  (0 0 0 0 0 0 0)
...