首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lisp哈希符号替换返回的值。

lisp哈希符号替换返回的值。
EN

Stack Overflow用户
提问于 2014-03-29 14:16:17
回答 1查看 100关注 0票数 1

我一直试图为一个图构建类似于宽度优先树的结构,它包含了来自给定节点的所有可能的路径。我对这个算法没有什么问题,就像我遇到了一些会弹出的错误一样。下面是相关代码:

代码语言:javascript
复制
(set 'my-graph '((A (B C))
                 (B (D E))
                 (C (F G))
                 (D (E))
                 (E (H))
                 (F (H I))
                 (G (I))
                 (H (J))
                 (I (J))
                 (J ())))


(defun search-tree(graph traversed visited)
  (cond
   ((null traversed) NIL)
   (:else (let*
              ((new-visited (append visited (list (car traversed))))
               (children (add-children graph (car traversed)
                                       (append (cdr traversed) new-visited))))
            (cond
             ((null children) (list (car traversed)))
             (:else 
              (cons (car traversed)
                    (mapcar (lambda(x) (search-tree graph (list x) new-visited)) children)))
             )
            )
          )
   )
  )

;;; Selects the node to pick returned children from
(defun add-children(graph node visited)
  (cond
   ((null graph) NIL)
   ((equal (caar graph) node) (new-nodes (cadar graph) visited))
   (:else (add-children (cdr graph) node visited))
   )
  )

;;; Returns new, unvisited nodes from the children of a node
(defun new-nodes(children visited)
  (cond
   ((null children) NIL)
   ((member (car children) visited) (new-nodes (cdr children) visited))
   (:else (cons (car children) (new-nodes (cdr children) visited)))
   )
  )

函数搜索树被称为(搜索树,我的-图'(A) '()),它返回几乎所有我想要的东西,但是第一个终端节点被#符号所取代(它应该是(J))。这里面有什么问题吗?

这是返回的值。

(A (B (D (E (H #))) (E (H (J)))) (C (F (H (J)) (I (J))) (G (I (J)))))

我尝试过跟踪代码,但我仍然不明白为什么(J)列表在中间递归中用#符号交换。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-29 14:23:31

通常,我会猜测这与*print-level*有关。

此变量控制嵌套列表打印的深度。将其设置为级别的数字。更深层次的列表将被替换为#字符。

如果将其设置为NIL没有帮助,那么您也可以参考Allegro手册-我可以远程记住IDE也有它自己的设置。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22732215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档