我试图在Racket中编写一个函数merge_longer,它将两个列表L1和L2作为输入。如果L1长于L2,则函数将L2附加到L1。否则,它将L1附加到L2。
(define L1 '(4 6 8 9))
(define L2 '(1 2 3))
(define (merge_longer L1 L2) (if (> length(L1) length(L2)) (append L1 L2)(append L2 L1)))
(merge_longer L1 L2)
但是,运行时会显示此错误: 申请:不是程序; 期望一个可以应用于参数的过程 给出:'(4 6 8 9) 参数......:[无]
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
你很亲密。
-
请注意,您可以在Racket中添加额外的括号。 当你写(l1)时,它意味着“将函数l1应用于无参数”。 由于l1是列表而不是函数,因此会出错。