Almacenamiento en caché de la media de un vector en R

Estoy aprendiendo R y me encontré con un código como parte de la tarea de práctica.

 makeVector <- function(x = numeric()) {
         m <- NULL
         set <- function(y) {
                x <<- y
                m <<- NULL
        }
        get <- function() x
        setmean <- function(mean) m <<- mean
        getmean <- function() m
        list(set = set, get = get,
             setmean = setmean,
             getmean = getmean)
 }

La documentación dice:

La función,makeVector crea un "vector" especial, que es realmente una lista que contiene una función para

establecer el valor del vectorobtener el valor del vectorestablecer el valor de la mediaobtener el valor de la media

Pero no puedo entender cómo funciona la función, excepto por el hecho de que está asignando un valor medio a la variablem en ese ambiente particular.

Respuestas a la pregunta(3)

Su respuesta a la pregunta