gpt4 book ai didi

lisp - 如何使这个邻居功能?

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:10 25 4
gpt4 key购买 nike

我有这个代码:

(defparameter fc #\F)
(defparameter bc #\B)
(defparameter gap #\G)

(defun solp (seq)
(if (eql fc (car seq))
(not (if (listp (cdr seq))
(find bc (cdr seq))
(eql seq bc)))
(solp (cdr seq))))

(defun heuristic (seq &optional (f 0))
(if (eql nil seq)
0
(if (eql bc (car seq))
(+ f (heuristic (cdr seq) f))
(heuristic (cdr seq) (+ f 1)))))

(defun genneighbors (seq)

;seq == (fc fc gap bc bc) ===> neighbors == ( (gap fc fc bc bc)
; (fc gap fc bc bc)
; (fc fc bc gap)
; (fc fc bc bc gap) )
;I can't figure out how to do this
)

我不知道如何编写 genneighbors 函数。如何在 gap 之前访问元素 (2 | 1) 个槽 如何生成所有四个可能的邻居?有人可以给我一些指示吗?

最佳答案

CLHS 章节中的所有函数 consessequences适用于列表。

另请注意,像这样命名全局变量是一种良好的编程风格(出于各种原因):*bc*、*fc* 和 *gap*。

另请注意,在较新的代码中,通常使用 FIRST 代替 CAR,使用 REST 代替 CDR。

关于lisp - 如何使这个邻居功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4295759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com