From 0603800a4114ed8b4c9572a7d7852995c9b9f334 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Wed, 21 May 2025 11:44:54 +0800 Subject: Added break with value syntax. --- spec/outputs/codes_from_doc.lua | 60 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 2 deletions(-) (limited to 'spec/outputs/codes_from_doc.lua') diff --git a/spec/outputs/codes_from_doc.lua b/spec/outputs/codes_from_doc.lua index a5412ab..644b7c3 100644 --- a/spec/outputs/codes_from_doc.lua +++ b/spec/outputs/codes_from_doc.lua @@ -20,6 +20,38 @@ local inventory = { } } } +local map +map = function(arr, action) + local _accum_0 = { } + local _len_0 = 1 + for _index_0 = 1, #arr do + local item = arr[_index_0] + _accum_0[_len_0] = action(item) + _len_0 = _len_0 + 1 + end + return _accum_0 +end +local filter +filter = function(arr, cond) + local _accum_0 = { } + local _len_0 = 1 + for _index_0 = 1, #arr do + local item = arr[_index_0] + if cond(item) then + _accum_0[_len_0] = item + _len_0 = _len_0 + 1 + end + end + return _accum_0 +end +local reduce +reduce = function(arr, init, action) + for _index_0 = 1, #arr do + local item = arr[_index_0] + init = action(init, item) + end + return init +end print(reduce(filter(map({ 1, 2, @@ -1026,12 +1058,24 @@ local _len_0 = 1 for i = 1, 20 do if i % 2 == 0 then _accum_0[_len_0] = i * 2 + _len_0 = _len_0 + 1 else _accum_0[_len_0] = i + _len_0 = _len_0 + 1 end - _len_0 = _len_0 + 1 end doubled_evens = _accum_0 +local first_large +local _accum_0 +local _list_0 = numbers +for _index_0 = 1, #_list_0 do + local n = _list_0[_index_0] + if n > 10 then + _accum_0 = n + break + end +end +first_large = _accum_0 local func_a func_a = function() for i = 1, 10 do @@ -3189,12 +3233,24 @@ local _len_0 = 1 for i = 1, 20 do if i % 2 == 0 then _accum_0[_len_0] = i * 2 + _len_0 = _len_0 + 1 else _accum_0[_len_0] = i + _len_0 = _len_0 + 1 end - _len_0 = _len_0 + 1 end doubled_evens = _accum_0 +local first_large +local _accum_0 +local _list_0 = numbers +for _index_0 = 1, #_list_0 do + local n = _list_0[_index_0] + if n > 10 then + _accum_0 = n + break + end +end +first_large = _accum_0 local func_a func_a = function() for i = 1, 10 do -- cgit v1.2.3-55-g6feb