PasteRack.org
Paste # 75756
2019-02-22 08:54:20

Fork as a new paste.

Paste viewed 271 times.


Embed:

  1. #lang racket
  2. ( define-struct person ( age sex ) )
  3. ( define-struct student ( person id ) )
  4.  
  5. (define s1 (make-student (make-person 10 "male") 123))
  6. (define s2 (make-student (make-person 20 "male") 456))
  7. (define s3 (make-student (make-person 30 "male") 789))
  8. (define stud-lst (list s1 s2 s3))
  9.  
  10.  
  11. (define (mean-of-ages students)
  12.   (cond
  13.     [(= (length students) 1)  (person-age (student-person (first students)))  ]
  14.     [else (/ (+ (person-age(student-person(first students))) (* (- (length students)1) (mean-of-ages (rest students)))) (length students))]
  15.     )
  16.   )
  17.  
  18. (mean-of-ages stud-lst)

=>

20