;; structure representing homework points
;; nr: number - the number of the homework
;; points: number - the number of points reached
(define-struct homework (nr points))
;; parse-homework: (list of number pairs) -> (list of homework)
;; The procedure takes a list of number pairs and produces a list of homework structures
;; Example: (parse-homework (list (list 1 6) (list 2 7) (list 3 0))) should produce (list (make-homework 1 6) (make-homework 2 7) (make-homework 3 0))
(define (parse-homework homework-entries)
(if (and (= (length (first homework-entries) 2))(= (length (parse-homework (rest homework-entries)) 2)))
(make-homework (first homework-entries) (parse-homework (rest homework-entries)))
(error 'Non-valid-input "entered list is not of length two"))
)
(parse-homework (list (list 1 6) (list 2 7) (list 3 0)))
此代碼將產生錯誤長度的結構:預計1個參數,給定2:(列表1 6)2解析的列表和產生的該
我真正體會每解釋,即可以給我得到在該方案中,東西...
非常感謝您
感謝德克我要去嘗試了這一點,我很困惑與括號的方案^^ – qzar 2010-05-10 15:47:23