September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
23
Task/Averages-Mean-angle/Scheme/averages-mean-angle.ss
Normal file
23
Task/Averages-Mean-angle/Scheme/averages-mean-angle.ss
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
(import (srfi 1 lists)) ;; use 'fold' from library
|
||||
|
||||
(define (average l)
|
||||
(/ (fold + 0 l) (length l)))
|
||||
|
||||
(define pi 3.14159265358979323846264338327950288419716939937510582097)
|
||||
|
||||
(define (radians a)
|
||||
(* pi 1/180 a))
|
||||
|
||||
(define (degrees a)
|
||||
(* 180 (/ 1 pi) a))
|
||||
|
||||
(define (mean-angle angles)
|
||||
(let* ((angles (map radians angles))
|
||||
(cosines (map cos angles))
|
||||
(sines (map sin angles)))
|
||||
(degrees (atan (average sines) (average cosines)))))
|
||||
|
||||
(for-each (lambda (angles)
|
||||
(display "The mean angle of ") (display angles)
|
||||
(display " is ") (display (mean-angle angles)) (newline))
|
||||
'((350 10) (90 180 270 360) (10 20 30)))
|
||||
Loading…
Add table
Add a link
Reference in a new issue