Pergunta

Qual é o paradigma de programação de R (R, como no GNU S)?

Acredito que sou familiarizado com as linguagens de programação de diferentes paradigmas conceituais (ter programmend em C++, Java, Prolog e algumas outras línguas), mas apesar de eu já escrevo a minha própria pequena R scripts, eu não tenho certeza de qual paradigma R é suposto representar.

Foi útil?

Solução

R suporta uma mistura de orientada a objetos e programação funcional paradigmas.

No aspecto funcional é:

  • tem funções de primeira classe
  • tem preguiça de avaliação de argumentos
  • incentiva puro, livre de efeitos secundários funções

Mas

  • ele não implementa a chamada de cauda recursão
  • e é fácil criar não-pura funções

Sobre a orientação a objetos lado:

  • ele tem três construído em OO paradigmas:S3 e S4, que são imutáveis e apoio função genérica estilo OO, e classes de referência (aka R5), que são mutáveis, e suporte a mais comum de transmissão de mensagens estilo OO.

  • S4 é fortemente influenciada pelo OO estilo de common lisp (CLOS) e dylan.

  • Há também um número de contribuíram os pacotes que fornecem outros tipos de OO: proto, mutatr, R.oo, OOP.

Mas

  • A built-in OO ferramentas fornecem pouco na forma de um açúcar sintático.

Outras dicas

De acordo com Wikipedia (ênfase adicionada),

.

r suporta Programação processual com funções e programação orientada a objetos com funções genéricas.Uma função genérica atua de maneira diferente, dependendo do tipo de argumentos que é passado.Em outras palavras, a função genérica reconhece o tipo de objeto e seleciona (despachos) a função (método) específica para esse tipo de objeto.Por exemplo, R tem uma função de impressão genérica () que pode imprimir quase todos os tipos de objeto em r com uma sintaxe simples "Imprimir (ObjectName)".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top