def map_across_table(fn, rows):
    """
    Returns:
        (list of lists): A table expressed as a list of lists, having a applied
                         a function to each cell.
    Args:
        fn (function): a single argument function to apply to each cell
        rows (list of lists): A table expressed as a list of lists, each cell of
                              which will be used once as the argument to fn.
    """
    return [
        [
            fn(cell)
            for cell in row
        ]
        for row in rows
    ]