2012-05-04 28 views
9

¿Cuál es la forma idiomática de verificar y documentar las condiciones previas de funciones y postcondiciones en R? Consideraría que Eiffel está construido en construcciones require y ensure o D 's in y out en el estado del arte aquí, pero la mayoría de los idiomas no tienen estos procesados, por lo que se han desarrollado las mejores prácticas para aproximarlos.¿Cuál es la forma idiomática de verificar y documentar las precondiciones de funciones y las postcondiciones en R?

Comprobando las condiciones previas, me refiero a lanzar algún tipo de excepción de tiempo de ejecución si se pasan datos que no cumplen con los supuestos de funciones. Actualmente tengo una declaración stopifnot para cada precondición que puedo pensar al comienzo de la función. Lo mismo se aplica a las postcondiciones, pero con respecto al valor de retorno en lugar de los parámetros.

Además, ¿existe una forma estándar de documentar cuáles son estas condiciones previas y posteriores? Por ejemplo, es bastante estándar deletrear esto en los comentarios de JavaDoc en Java.

¿Cuáles son las mejores prácticas en R a este respecto?

Respuesta

2

En cuanto a la documentación que os recomiendo echar un vistazo al paquete roxygen2. Es comparable a JavaDoc y Doxygen en que almacena la documentación en el archivo fuente junto con el código. Hay una serie de elementos que necesitan ser definidos, por ejemplo:

  • ¿Cuáles son los argumentos de entrada
  • Lo que hace el retorno de la función

pero esto no le impida la creación de su propia pre y post elementos que documentan las condiciones previas y posteriores. Para obtener más información sobre roxygen2, vea CRAN o StackOverflow.

2

Ver ?stopifnot

o

para los mensajes de error más amable pero un código más detallado if (condition) stop("...message...").

Cuestiones relacionadas