SQL về cơ bản là một thể hiện cụ thể miền của map + Fold + filter?
Dường như với tôi rằng SQL sau:
SELECT name
FROM fruits
WHERE calories < 100
chỉ là cú pháp đường cho bản đồ sau + bộ lọc + thao tác gấp:
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; });
Là sự trùng hợp ngẫu nhiên này, hay có một sự tương đương ngữ nghĩa âm thanh có thể được chứng minh? Làm thế nào, đại khái?
Tôi biết trong thực tế SQL có rất nhiều tiếng chuông và tiếng huýt sáo nhưng cốt lõi của nó là nó chỉ đơn giản là một hoạt động của bộ lọc bản đồ?
Bài viết sau đây có liên quan: http://bloss.msdn.com/b/doriancorompt/archive/2013/01/21/brelling-the-querying-power-of-sql-to-javascript.aspx