Common Lisp пустой список
Формулировка задачи:
Как сделать чтобы вместо NIL выводились ()
(defun task (lst) (cond ((null lst) nil) ((or (null (car lst))(listp (car lst))) (cons (car lst) (task (cdr lst)))) (t (task (cdr lst))))) ==> TASK (task '(a (b a) () c)) ==> ((B A) NIL)
Решение задачи: «Common Lisp пустой список»
textual
Листинг программы
(in-package #:cl-user) (defun print-null (stream i c a) (declare (ignore i c a)) (format stream "()")) (defun print-mod-list (list) (let ((*print-pprint-dispatch* (copy-pprint-dispatch))) (set-pprint-dispatch 'null (formatter "~/print-null/")) (pprint list))) (defun print-mod-list_ (list) (let ((*print-pprint-dispatch* (copy-pprint-dispatch))) (set-pprint-dispatch 'null #'(lambda (s x) (declare (ignore x)) (format s "()"))) (pprint list))) CL-USER> (print-mod-list_ '(nil 2 nil 3 nil)) (() 2 () 3 ()) ; No value CL-USER> (print-mod-list '(nil 2 nil 3 nil)) (() 2 () 3 ()) ; No value
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д