-1
這是一個後續this question組合名單。如何遞歸經歷名單列表,並以不同的方式
我有列表或附加彙集成一個空表「記載」,這是每個格式(Matthew (AL 21 32))
。我現在正在嘗試編寫一個函數,該函數將使用fetchRecord
來查找所需的記錄,然後將記錄中的兩個數字相乘。但是,我目前的代碼只有在第一條記錄上得到名稱的情況下才起作用,但是之後它會爲任何記錄返回一個空列表。這裏是我的代碼:
(define (Mult_Num name)
(cond
[(empty? db) #f]
[else (* (car(cdr(car(cdr (fetchRecord name)))))
(car(cdr(cdr(car(cdr (fetchRecord name)))))))]))
我該如何解決這個問題?另外,如果某個記錄有兩組數據,例如:(John (AL 25 40) (CA 40 67))
那麼您將如何獲得25 * 40和40 * 67等,即使它具有兩組以上的數據?我明白這是遞歸,但我不太清楚你將如何設置它。
這是我fetchRecord功能:
(define (fetchRecord name)
(cond
[(empty? db) #f]
[(equal? (car (car db)) name) (car db)]
[else(car (car db)) name (cdr db)]))
這也可能是相關的:
(define db '())
我也有這個,但如果我在這裏螺絲本身起來有兩個以上的名字:
(define(showRec name) ;displays everything following a name.
(cond
[(empty? db) #f]
[(equal? (car (car db)) name) (cdr (fetchRecord name))]
[else (cdr (car(fetchRecord name)))])
)
沒有遞歸如果函數(在這種情況下,'Bill_Amt')不會調用自身。 –
@ScottHunter我想知道什麼是錯的,然後才能開始遞歸,因爲它會一直給出錯誤。 – Mkodamore
請閱讀[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)上的幫助,因爲您的問題(如現在)不清楚。 – Renzo