簡體   English   中英

比較兩個列表的長度並追加到球拍中

[英]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)

但是,在運行該錯誤時會顯示該錯誤:application:not a procedure; 預期可以應用於給定參數的過程:'(4 6 8 9)arguments ...:[無]

有人可以幫我解決這個問題嗎?

你近了

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

請注意,您可以在球拍中添加額外的括號。 當您編寫(l1)時,它的意思是“將函數l1應用於任何自變量”。 由於l1是列表,而不是函數,因此會出現錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM