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