SQL è fondamentalmente un'istanza specifica del dominio map + fold + filter?
Mi sembra che il seguente SQL:
SELECT name
FROM fruits
WHERE calories < 100
è solo zucchero sintattico per la seguente mappa + filtro + operazione di piegatura:
var fruits = [{id : 1, name: 'orange', calories : 100},
{id : 2, name : 'banana', calories : 150},
{id : 3, name: 'apple', calories : '50'}];
fruits.map(function(fruit) { return { name : fruit.name, calories : fruit.calories })
.filter(function(obj) { return obj.calories < 100 })
.reduce(function (accumulator, obj) { accumulator + "\n" + val.name; });
È questa coincidenza o esiste una valida equivalenza semantica che può essere dimostrata? Come, all'incirca?
So che in pratica SQL ha un sacco di campane e fischietti ma al suo interno si tratta semplicemente di un'operazione map-fold-filter?
Il seguente articolo è pertinente: link