我没有运气创建删除子列表的功能。
我有这个清单:
'((("a" "c") ("a" "l")) (("b" "c") ("b" "l")) (("c" "hmm")))
这应该是结果:
'(("a" "c") ("a" "l") ("b" "c") ("b" "l") ("c" "hmm"))
任何帮助都将不胜感激。
答案 0 :(得分:0)
使用两个函数展平(在网上找到)和createPairs。
第一个函数将列表展平为1级深度列表,如下所示:
'("a" "c" "a" "l" "b" "c" "b" "l" "c" "hmm")
第二个函数createPairs按对象加入列表:
'(("a" "c") ("a" "l") ("b" "c") ("b" "l") ("c" "hmm"))
以下是使用过的功能:
拼合:
(define (flatten list)
(cond ((null? list) '())
((list? (car list)) (append (flatten (car list)) (flatten (cdr list))))
(else
(cons (car list) (flatten (cdr list))))))
CreatePairs:
(define (createPairs a)
(cond ((null? a) '())
(else
(cons (list (car a) (car (cdr a)))
(createPairs (cdr (cdr a)))))))