Mercurial Hosting > luan
comparison website/src/examples/map_reduce.txt.luan @ 2171:8b77bd42864d
add add Thread.map_reduce
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Sun, 22 Mar 2026 19:24:52 -0600 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 2170:a59d0bf68830 | 2171:8b77bd42864d |
|---|---|
| 1 local Luan = require "luan:Luan.luan" | |
| 2 local error = Luan.error | |
| 3 local ipairs = Luan.ipairs or error() | |
| 4 local Thread = require "luan:Thread.luan" | |
| 5 local Io = require "luan:Io.luan" | |
| 6 local Http = require "luan:http/Http.luan" | |
| 7 | |
| 8 | |
| 9 local function map(_) | |
| 10 return {1} | |
| 11 end | |
| 12 | |
| 13 local function reduce(lists) | |
| 14 local n = 0 | |
| 15 for _, list in ipairs(lists) do | |
| 16 n = n + list[1] | |
| 17 end | |
| 18 return {n} | |
| 19 end | |
| 20 | |
| 21 local mr = Thread.map_reduce("count",map,reduce) | |
| 22 | |
| 23 return function() | |
| 24 local list = mr(nil) | |
| 25 local n = list[1] | |
| 26 Io.stdout = Http.response.text_writer() | |
| 27 %>count: <%=n%><% | |
| 28 end |
