比较两个列表的长度并追加到球拍中
compare the length of two list and append in 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)
参数...:[none]
有人可以帮我解决这个问题吗?
你很接近。
(define (merge-longer l1 l2)
(if (> (length l1) (length l2))
(append l1 l2)
(append l2 l1)))
请注意,您可以在 Racket 中添加额外的括号。
当你写 (l1) 时,它意味着 "apply the function l1 to no arguments"。
由于 l1 是一个列表,而不是一个函数,你会得到一个错误。
我尝试在 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) 参数...:[none]
有人可以帮我解决这个问题吗?
你很接近。
(define (merge-longer l1 l2)
(if (> (length l1) (length l2))
(append l1 l2)
(append l2 l1)))
请注意,您可以在 Racket 中添加额外的括号。 当你写 (l1) 时,它意味着 "apply the function l1 to no arguments"。 由于 l1 是一个列表,而不是一个函数,你会得到一个错误。