diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/website/src/examples/map_reduce.txt.luan	Sun Mar 22 19:24:52 2026 -0600
@@ -0,0 +1,28 @@
+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