所以在這裏我有幾個定義的列表中,我想用:方案功能看到的是兩端匹配
(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
怎麼可能這個功能,因爲我被編碼對計劃很陌生,並會看到它的樣子,提前謝謝。
謝謝,我要試一試。 – user1786512
不適用於空列表 – finnw
@finnw您是對的。我更新了我的答案,謝謝。 –