2014-11-04 54 views
1

我一直在試圖編寫一個名爲更短的過程,接受兩個參數都是列表。我可以使用'x'和'y'來表示列表將作爲參數輸入嗎?我已經寫出了這個過程,但是我沒有看到它的任何錯誤,但是當我嘗試運行它時,交互面板會顯示「應用程序:不是一個過程;期望一個過程可以應用於參數 : 2個 參數...:如何允許列表作爲參數輸入計劃

3" ,我不太知道如何解釋這一點。我正在寫的程序如下。

(define (shorter x y) 
    (if ((length x) < (length y)) 
     x 
     (if ((length x) > (length y)) 
      y 
      x))) 

回答

4

球拍是一種前綴語言,這意味着運算符應該在參數之前。如何:

(define (shorter x y) 
    (if (< (length x) (length y)) 
     x 
     (if (> (length x) (length y)) 
      y 
      x))) 

或...

(define (shorter x y) 
    (if (<= (length x) (length y)) 
     x 
     y)) 
+0

權。十分感謝你的幫助。 – tk30 2014-11-04 12:14:03