view 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
line wrap: on
line source

local Luan = require "luan:Luan.luan"
local error = Luan.error
local ipairs = Luan.ipairs or error()
local Thread = require "luan:Thread.luan"
local Io = require "luan:Io.luan"
local Http = require "luan:http/Http.luan"


local function map(_)
	return {1}
end

local function reduce(lists)
	local n = 0
	for _, list in ipairs(lists) do
		n = n + list[1]
	end
	return {n}
end

local mr = Thread.map_reduce("count",map,reduce)

return function()
	local list = mr(nil)
	local n = list[1]
	Io.stdout = Http.response.text_writer()
	%>count: <%=n%><%
end