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
,因为这会让你感到困惑。谢谢你的回答,幸运的是我自己能弄明白!也谢谢你提示我应该用英语发布代码:)。