Ist SQL im Grunde eine domänenspezifische Instanz von map + fold + filter?
Es scheint mir, dass die folgende SQL:
SELECT name
FROM fruits
WHERE calories < 100
ist nur syntaktischer Zucker für die folgende Map + Filter + Fold-Operation:
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; });
Ist das Zufall oder gibt es eine solide semantische Äquivalenz, die bewiesen werden kann? Wie ungefähr?
Ich weiß, dass SQL in der Praxis viele Schnickschnack hat, aber im Kern ist es einfach eine Map-Fold-Filter-Operation?
Der folgende Artikel ist relevant: http://blogs.msdn.com/b/doriancorompt/archive/2013/01/21/bringing-the-querying-power-of-sql-to-javascript.aspx