Scheme:一个函数,用于确定传入的列表是否遵循A B模式。 AB图案可以是(A B A B A B)或(A B)或重复的A和B的任何组合。 A和B不是变量,我的字面意思是字母A后跟字母B.
答案 0 :(得分:0)
一种天真但简单的算法:在列表的头部查找模式;如果它匹配返回true,如果它不在列表的其余部分中查找模式。
(define (sublist? pattern list)
(and (not (null? list))
(or (match? pattern list)
(sublist? pattern (cdr list)))))
并且match?
函数可以是:
(define (match? p l)
(or (null? p)
(and (not (null? l))
(eq? (car p) (car l))
(match? (cdr p) (cdr l)))))