« first day (807 days earlier)      last day (98 days later) » 

10:48 AM
Returning to this with (what is in some respects) a fresh mind sheds new light on what take_degrees should be called.
Instead of take_degrees and give_degrees, or taking_degrees and giving_degrees, much better names are make_accept_degrees and make_return_degrees.
Here's a version of trig.py with both of them:
"""trigonometric functions in degrees"""

import math


def make_accept_degrees(f):
    """Makes a function like f but that expects degrees instead of radians."""
    def g(x):
        return f(math.radians(x))

    return g


def make_return_degrees(f):
    """Makes a function like f but that returns degrees instead of radians."""
    def g(x):
        return math.degrees(f(x))

    return g


sin = make_accept_degrees(math.sin)
cos = make_accept_degrees(math.cos)
tan = make_accept_degrees(math.tan)
 

« first day (807 days earlier)      last day (98 days later) »