Qual è il paradigma di programmazione di r?
Domanda
Qual è il paradigma di programmazione di r (r come in gnu s)?
Mi credo con familiarità con i linguaggi di programmazione di diversi paradigmi concettuali (hanno programmato in C ++, Java, Prolog e alcune altre lingue) ma anche se scrivo già i miei piccoli script r, non sono sicuro di quale paradigma deve rappresentare.
Soluzione
R supporta una miscela di paradigmi di programmazione orientati agli oggetti e funzionali.
Sul lato funzionale:
- .
- ha funzioni di prima classe
- ha una valutazione pigra di argomenti
- incoraggia le funzioni libere pure e con effetti collaterali
ma
- .
- non implementa la recupero delle call della coda
- ed è facile creare funzioni non pure
sul lato orientato all'oggetto:
- .
-
ha tre incorporati in paradigmi OO: S3 e S4, che sono immutabili e supportano la funzione Generico Stile Generico OO e le classi di riferimento (AKA R5) che sono mutevoli e supportano lo stile più comune di passaggio del messaggio OO.
-
s4 è pesantemente influenzato dallo stile OO del comune comune (clos) e dalliano.
-
Ci sono anche un numero di pacchetti forniti che forniscono altri tipi di oo:
proto
,mutatr
,R.oo
,OOP
.
ma
- .
- Gli strumenti OO integrati offrono poco nel modo di zucchero sintattico.
Altri suggerimenti
Secondo wikipedia (enfasi aggiunta),
.R supporta Programmazione procedurale con funzioni e Programmazione orientata agli oggetti con funzioni generiche.Una funzione generica agisce in modo diverso a seconda del tipo di argomenti che è passato.In altre parole la funzione generica riconosce il tipo di oggetto e seleziona (inviati) la funzione (metodo) specifica per quel tipo di oggetto.Ad esempio, R ha una funzione di stampa generica () che può stampare quasi ogni tipo di oggetto in R con una semplice sintassi "Stampa (ObjectName)".