📄 printrec.lsp
字号:
; prints recursive list structure;(let (seen-list)(setf seenlist nil) (defun seenp (l) (member l seenlist :test 'eq)) (defun make-seen (l) (setf seenlist (cons l seenlist))) (defun printrec (l) (printrec-any l) (setf seenlist nil)) (defun printrec-any (l) (cond ((atom l) (prin1 l) (princ " ")) ((seenp l) (princ "<...> ")) (t (make-seen l) (princ "(") (printrec-list l) (princ ") "))) nil) (defun printrec-list (l) (printrec-any (car l)) (cond ((cdr l) (cond ((seenp (cdr l)) (princ "<...> ")) ((atom (cdr l)) (princ ". ") (prin1 (cdr l)) (princ " ")) (t (make-seen (cdr l)) (printrec-list (cdr l)))))) nil); )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -