09/07/21 12:44:29
>>524
(define bt '((1 60) (3 75) (4 100) (2 80)))
(define (average bt) (exact->inexact (/ (fold + 0 (map cadr bt)) (length bt))))
(define (sorter kind bt)
(cond ((eq? kind 'bangou) (sort bt (lambda (x y) (< (car x) (car y)))))
((eq? kind 'tokuten) (sort bt (lambda (x y) (> (cadr x) (cadr y)))))
(else "designate sort kind")))
(define (output bt)
((lambda (ave)
(map (lambda (x)
(print "bangou:" (car x))
(print "tokuten:" (cadr x))
(print "heikin_diff:" (- (cadr x) ave))
(newline)) bt))
(average bt)))
(average bt)
(sorter 'bangou bt)
(sorter 'tokuten bt)
(output bt)