Qual é a diferença entre programação relacional funcional e programação funcional?

8

Depois de ler este tópico e o artigo vinculado , não entendo como o FRP (programação funcional relacional) é diferente da programação funcional (FP).

O FRP aumenta ou substitui o FP? O FRP pode ser implementado como uma biblioteca em uma linguagem FP?


fonte

Respostas:

8

A programação relacional funcional parece ser, exatamente como o nome sugere, uma mistura da programação funcional e do modelo relacional. Eu acho que essa frase resume bastante (p. 42):

No FRP, todo estado essencial assume a forma de relações, e a lógica essencial é expressa usando álgebra relacional estendida com funções definidas pelo usuário (puras).

A programação funcional remove o estado da equação e lida apenas com funções puras (sem efeitos colaterais). Isso deve facilitar as coisas para todos, impedindo que a manipulação de dados seja ocultada, facilitando o raciocínio sobre o programa. FP é um ideal ideal, mas em aplicações da vida real o estado é necessário e frequentemente útil. É claro que é possível afirmar que no FP é apenas um pouco mais envolvido.

Com uma rápida olhada no artigo, parece que eles estão tentando simplificar o FP, permitindo que o estado seja controlado de maneira rigorosa. Os dados relacionais são bem estruturados e fáceis de raciocinar e os programas funcionais são fáceis de raciocinar (talvez não no sentido humano), então vamos aumentar o FP com R e facilitar a vida de todos os amantes do estado.

axblount
fonte
Obrigado pela resposta. Parece que é como eu esperava - não muito diferente do FP. O que eu não conseguia entender era por que muitas pessoas estavam implementando suas próprias ferramentas de FRP, em vez de apenas estender uma linguagem FP.
@MattFenwick Tem certeza de que tem o "R" certo aqui? Há também a Programação Reativa Funcional , que também é comumente abreviada como FRP, e também é uma especialização do FP, mas não tem nenhuma relação com a álgebra relacional. Existem muitas implementações independentes / especializadas do FR (ativo) P, mas nunca ouvi falar do FR (elacional) P antes.
Chama de Ptharien
@ Chama sim, tenho certeza. Veja o artigo vinculado para mais detalhes.
Uma linguagem muito interessante para se examinar é o Opa - uma linguagem funcional que oferece estado mutável vinculado a registros de banco de dados (relacionais ou de documentos), sintaxe de consulta muito direta e um sistema de tipos extremamente poderoso. Não é uma linguagem funcional-relacional por si só, mas pode ser uma linguagem adequada para exercitar a idéia de programação funcional-relacional. (não se deixe enganar pela forma como este é marcado como um "framework JavaScript" - é uma linguagem compilada e único diferente de tudo que já vi.)
mindplay.dk
PS: obrigado @axblount, esta é uma resposta absolutamente linda!
mindplay.dk