【问题标题】:compare the length of two list and append in racket比较两个列表的长度并附加在球拍中
【发布时间】:2015-07-09 19:39:51
【问题描述】:

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

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

【问题讨论】:

    标签: functional-programming racket


    【解决方案1】:

    你很亲密。

    (define (merge-longer l1 l2)
      (if (> (length l1) (length l2))
          (append l1 l2)
          (append l2 l1)))
    

    请注意,您可以在 Racket 中添加额外的括号。 当您编写 (l1) 时,它的意思是“将函数 l1 应用于无参数”。 因为 l1 是一个列表,而不是一个函数,所以你会得到一个错误。

    【讨论】:

      猜你喜欢
      • 2021-02-25
      • 2018-12-07
      • 1970-01-01
      • 2017-12-24
      • 2019-02-17
      • 1970-01-01
      • 2015-04-16
      • 2018-07-03
      • 1970-01-01
      相关资源
      最近更新 更多