Como aplicar a função sobre os índices de cada elemento da matriz

Estou me perguntando se existe uma função interna em R que aplique uma função a cada elemento da matriz (é claro, a função deve ser calculada com base nos índices da matriz). O equivalente seria algo como isto:

matrix_apply <- function(m, f) {
  m2 <- m
  for (r in seq(nrow(m2)))
    for (c in seq(ncol(m2)))
      m2[[r, c]] <- f(r, c)
  return(m2)
}

Se não houver essa função interna, qual é a melhor maneira de inicializar uma matriz para conter valores obtidos ao computar uma função arbitrária que possua índices de matriz como parâmetros?

questionAnswers(5)

yourAnswerToTheQuestion