比较两个列表的长度并在球拍中追加

时间:2015-04-30 07:51:41

标签: functional-programming racket

我试图在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)   参数......:[无]

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

你很亲密。

-

请注意,您可以在Racket中添加额外的括号。 当你写(l1)时,它意味着“将函数l1应用于无参数”。 由于l1是列表而不是函数,因此会出错。