sintaxis - manual de r estadistica en español
¿Los lenguajes de programación estadística como R/SAS se consideran funcionales o de procedimiento? (2)
R es principalmente un lenguaje de programación funcional. Tiene algunas excepciones donde las cosas se hacen a través de efectos secundarios, por lo que no es tan funcional como Haskell. Sin embargo, si no está dispuesto a adaptar su estilo de programación para usar funciones, tendrá bastante dificultad para escribir un código R eficiente. (La única razón por la que escribo esta respuesta es que llamar a R un lenguaje orientado a objetos será engañoso para las personas que lleguen esperando poder enviar mensajes de función a objetos de datos de la misma manera que lo hacen con Java. R usa la clase de un objeto como mecanismo de selección de despacho para funciones "genéricas", pero ese no es el mismo paradigma que los lenguajes OO completos).
R tiene entre tres, cuatro o cinco clases de objetos principales según cómo piense sobre ellos y los tipos de función asociados. Las funciones S3 originales que se distribuyen solo en la clase de sus primeros argumentos son probablemente las más utilizadas, aunque la clase S4 que puede despachar múltiples firmas de argumento es ampliamente utilizada en el mundo de BioConductor. Los objetos clasificados por clase o R5 o proto-clasificados se parecen más a los verdaderos tipos de datos de programación orientada a objetos. Estoy siendo un poco vago en esa última frase, porque carezco de mucha experiencia con ellos.
SAS es principalmente un lenguaje de procedimiento. Puede definir funciones, pero no es la forma en que la mayoría de las personas interactúa con SAS y sus conjuntos de datos, al menos al principio. Al menos cuando lo usé hace 15 años, realmente no tenía un modelo de objetos. Yo diría que su principal ventaja es un soporte superior para la "redacción de informes".
(El comentario de que la manipulación de datos es "difícil en R" solo indica falta de experiencia. La cantidad de código que necesito para la manipulación de datos en R es mucho menor que el código utilizado por mis colegas SAS. Si comenzó a programar en SAS, entonces la conversión será difícil, pero aquellos de nosotros que hemos cambiado en general nos hemos quedado con R.)
Todavía no entiendo la diferencia después de leer esto
Entonces, en lugar de preguntar cuál es la diferencia entre la programación funcional versus la de procedimiento, pensé, tal vez un lenguaje con el que estoy familiarizado pueda servir como ejemplo.
Por lo tanto, mis preguntas: ¿Los idiomas R / SAS se consideran de procedimiento o funcionales?
Yo diría que R es definitivamente de procedimiento; La programación funcional es mucho más que hacer uso de funciones, por ejemplo, usar una modularidad gruesa; de hecho, fp está comprometido con la modularidad extrema, que es una de sus principales fortalezas; busque el artículo clásico "Por qué la programación funcional importa" por John Hughes para obtener más información.
SAS me parece más especial que esté diseñado para organizar datos en tablas y realizar informes estadísticos sobre ellos. Parece que no tiene una relación particular con la programación funcional; Todavía estoy investigando sus capacidades de procedimiento (o la falta de ellas)