我们可以使用以下代码来实现这个函数:
(define (find-lowest-tuition-university universities)
(define (tuition uni) (third uni))
(define (compare-tuition tuitions)
(cond ((null? tuitions) '())
((null? (cdr tuitions)) (car tuitions))
((< (car tuitions) (cadr tuitions)) (compare-tuition (cons (car tuitions) (cddr tuitions))))
(else (compare-tuition (cdr tuitions)))))
(define min-tuition (compare-tuition (map tuition universities)))
(define (get-university tu) (first (member tu (map tuition universities) (lambda (a b) (= a b)))))
(get-university min-tuition))
这个函数接收一个大学列表作为参数,然后使用辅助函数逐一比较每个大学的学费,找到最低学费的大学。最后返回该大学的名称。
我们首先定义了两个辅助函数:tuition
和compare-tuition
。tuition
函数接受一所大学作为参数,并返回该大学的学费。compare-tuition
函数接受一个学费列表作为参数,它递归地比较每个元素,找到最小的学费,然后返回该学费的值。
接下来,我们使用map
函数来将大学列表转换为学费列表,然后调用compare-tuition
函数以找到最低的学费。然后,我们使用member
函数来查找具有最低学费的大学,最后从大学元组中提取大学的名称并返回它。