所以在这里我有几个我想使用的已定义列表:
(DEFINE list0 (LIST 'j 'k 'l 'm 'n 'o 'j) )
(DEFINE list1 (LIST 'a 'b 'c 'd 'e 'f 'g) )
(DEFINE list2 (LIST 's 't 'u 'v 'w 'x 'y 'z) )
(DEFINE list3 (LIST 'j 'k 'l 'm 'l 'k 'j) )
(DEFINE list4 (LIST 'n 'o 'p 'q 'q 'p 'o 'n) )
(DEFINE list5 '( (a b) c (d e d) c (a b) ) )
(DEFINE list6 '( (h i) (j k) l (m n) ) )
(DEFINE list7 (f (a b) c (d e d) (b a) f) )
我想做的是为'endsmatch'函数创建一个递归函数,它会这样做:
ENDSMATCH:
(endsmatch 1st)
如果#t
列表中的第一个元素与列表中的最后一个元素相同则返回,
#f
否则返回。那是,
(endsmatch '(s t u v w x y z) )
将/应该返回:
#f
(endsmatch (LIST 'j 'k 'l 'm 'n 'o 'j)
将/应该返回:
#t
和
两者都(endsmatch '())
应该(endsmatch '(a))
返回#t
,等等。
该函数还可以读取复杂的列表,例如:
(endsmatch '((a b) c (d e d) c (a b)) )
然后返回:
#t
和:
(endsmatch '((a b) c (d e d) c (b a)) )
(endsmatch '((y z) y) )
都应该返回#f
这个函数如何编码,因为我是方案新手,会看到它的样子,提前谢谢你。