List 如何将两个列表附加在一起?计划

List 如何将两个列表附加在一起?计划,list,append,scheme,lisp,racket,List,Append,Scheme,Lisp,Racket,我需要帮助合并两个列表。我的目标是用“abc”取代“a”。我已经做了一个计数器等,但不知何故,我不能附加这两个列表(列表是一个空列表,”(“abc”),作为我要添加的新列表) 我试图添加更多的括号,但问题只是越来越严重,我添加更多 (define (umwandl tr) (cond ((null? tr) (display "Kein Text eingegeben")) (else (uff (string->list tr) '())))) ; string w

我需要帮助合并两个列表。我的目标是用
“abc”
取代
“a”
。我已经做了一个计数器等,但不知何故,我不能附加这两个列表(列表是一个空列表,
”(“abc”)
,作为我要添加的新列表)


我试图添加更多的括号,但问题只是越来越严重,我添加更多

(define (umwandl tr)
  (cond ((null? tr) (display "Kein Text eingegeben"))
        (else (uff (string->list tr) '()))))  ; string wird nict inliste umgweandel

(define (uff tr liste)
  (cond ((null? tr)(list->string liste))
        (else 
           (cond ((equal? (first (rest (first (start1 (first tr))))) 1)
                    **((append list (list '("abc"))))))**
                    (uff (rest tr) liste))))

我的错误消息是,
(“'abc”)
不是参数,或者它只是给我一个答案。如果有人能帮忙,那就太好了

学习计划或任何Lisp都意味着了解列表结构。一个列表可以做成像
(cons1(cons2(cons3’()))
一样,我喜欢认为列表中没有
的元素意味着有一个,其余的有一组额外的偏执。完成递归!因此:

'(1 2 3)              ; ==
'(1 . (2 3))          ; ==
'(1 . (2 . (3)))      ; ==
'(1 . (2 . (3 . ()))) ; ==> (1 2 3)
我看到列表时没有看到的点,所以我知道
3
caddr
,因为我通过了
。(
2次(
dd
),然后跳进
汽车
,从而
caddr
)。 将两个列表附加在一起意味着复制第一个列表并用第二个列表替换
()
。因此
附加可以定义为:

(define (my-append l1 l2)
  (if (null? l1) 
      l2
      (cons (car l1) 
            (my-append (cdr l1) l2))))

将一个元素替换为另一个元素。您需要执行相同的操作,但要在每次迭代中比较第一个元素,并在此基础上使用找到的元素或替换元素。如果要比较字符串,则需要使用
equal?
,因为
(eqv?“hello”“hello”);==>f
是有效的结果

“我试图添加更多的括号,但问题只是越来越严重,我添加越多“。这听起来是个很糟糕的主意。首先学习语法并真正理解括号应该放在哪里如何?另外,请发布代码的输入示例和预期输出。并用英语发布代码,以便更多人能够理解。
(eq?list liste)==>#f
。您还将调用
append
中的结果作为一个过程(使用双括号即可)。诸如此类的东西你应该使用
cons
而不是
append
list
,因为这会让你感到困惑。谢谢你的回答,幸运的是我自己能弄明白!也谢谢你提示我应该用英语发布代码:)。