scheme scheme scheme scheme

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/07 16:53:53
scheme scheme scheme scheme
xVn0 λX؂8MץYKbӱY$9k~vlŶ0||`Tj+FOt q81Vיcx}zH~ɤfv(T 3c' RVF.$40%,YӱRPm-ۣ LKE 5V2@HPj~u ##IYD_K9/d7\%1YvtQo.3̠Z;D4E !Zv BI_ۅ!K{9Jp4h߽F䏌 ʙ?rfh/k6aqt]fZ0b7osfh-ZFwFkҍ\* 66u/l6(ލWX=o*v9/5^3@3 E `EE|k7

scheme scheme scheme scheme
scheme scheme scheme scheme

scheme scheme scheme scheme
(define-struct student (ID name score))
;contract:findTopper:list->number
;purpso:To find the 10 of the student who scored the highest ,given a instances of type student
;example:(findTopper (list (make-student 2324 "Seenu" 60) (make-student 5678 "Cherry" 100) (make-student 8901 "Micky" 40) (make-student 5839 "David" 30)
(define findTopper
(lambda (studentList)
(let traverseStudentList
((lengthList (length studentList))
(index 1 )
(currentTopper (list-ref studentList 0)))
(if (< index lengthList)
(if (> (student-score (list-ref studentList index )) (student-score currentTopper))
(begin
(set!currentTopper (list-ref studentList index))
(traverseStudentList lengthList (+ index 1) currentTopper))
(traverseStudentList lengthList (+ index 1) currentTopper))
(student-ID currentTopper)))))
(define-struct student (ID name score))
;contract:findTopper:list->number
;purpso:To find the 10 of the student who scored the highest ,given a instances of type student
;example:(findTopper (list (make-student 2324 "Seenu" 60) (make-student 5678 "Cherry" 100) (make-student 8901 "Micky" 40) (make-student 5839 "David" 30)))
(define findTopper
(lambda (studentList)
(if (and (list?studentList) (not (null?studentList))) (validateList studentList))
(let traverseStudentList
((lengthList (length studentList))
(index 1 )
(currentTopper (list-ref studentList 0)))
(if (< index lengthList)
(if (> (student-score (list-ref studentList index )) (student-score currentTopper))
(begin
(set!currentTopper (list-ref studentList index))
(traverseStudentList lengthList (+ index 1) currentTopper))
(traverseStudentList lengthList (+ index 1) currentTopper))
(student-ID currentTopper)))(display"Invalid Input")))
;contract:validateList:list->boolean
;purpose:To check if all the elements of list is of type student
;;example:(validateList (list (make-student 2324 "Seenu" 60) (make-student 5678 "Cherry" 100) (make-student 8901 "Micky" 40) (make-student 5839 "David" 30)))
(define validateList
(lambda (studentList)
(if (not (null?studentList))
(if (not (student?(car studentList)))
#f
(validateList (cdr studentList)))
#t)))