(define (degrees->radians deg min sec)
(/ (+ deg (/ min 60) (/ sec 60 60)) 57.2957795))
(define (radians->degrees rad)
(let* ((r (* rad 57.2957795))
(m
(floor (* (- r d
) 60))) (s (round (* (- (* (- r d) 60) m) 60))))
(values (inexact->exact d)
(inexact->exact m)
(inexact->exact s))))
(display (degrees->radians 47 6 38)) (newline)
(call-with-values
(lambda () (radians->degrees 0.822234307))
(lambda (d m s)
(display d) (display " ")
(display m) (display " ")
(display s) (newline)))
KGRlZmluZSAoZGVncmVlcy0+cmFkaWFucyBkZWcgbWluIHNlYykKICAoLyAoKyBkZWcgKC8gbWluIDYwKSAoLyBzZWMgNjAgNjApKSA1Ny4yOTU3Nzk1KSkKCihkZWZpbmUgKHJhZGlhbnMtPmRlZ3JlZXMgcmFkKQogIChsZXQqICgociAoKiByYWQgNTcuMjk1Nzc5NSkpCiAgICAgICAgIChkIChmbG9vciByKSkKICAgICAgICAgKG0gKGZsb29yICgqICgtIHIgZCkgNjApKSkKICAgICAgICAgKHMgKHJvdW5kICgqICgtICgqICgtIHIgZCkgNjApIG0pIDYwKSkpKQogICAgKHZhbHVlcyAoaW5leGFjdC0+ZXhhY3QgZCkKICAgICAgICAgICAgKGluZXhhY3QtPmV4YWN0IG0pCiAgICAgICAgICAgIChpbmV4YWN0LT5leGFjdCBzKSkpKQoKKGRpc3BsYXkgKGRlZ3JlZXMtPnJhZGlhbnMgNDcgNiAzOCkpIChuZXdsaW5lKQooY2FsbC13aXRoLXZhbHVlcwogIChsYW1iZGEgKCkgKHJhZGlhbnMtPmRlZ3JlZXMgMC44MjIyMzQzMDcpKQogIChsYW1iZGEgKGQgbSBzKQogICAgKGRpc3BsYXkgZCkgKGRpc3BsYXkgIiAiKQogICAgKGRpc3BsYXkgbSkgKGRpc3BsYXkgIiAiKQogICAgKGRpc3BsYXkgcykgKG5ld2xpbmUpKSk=