if os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") == "1" then
require("lldebugger").start()
end
----require "debugger":start "127.0.0.1:12306":event "wait"
----print "ok"
print("min-and-max.lua")
print("min-and-max.lua : min and max of numbers table")
-- min-and-max.lua
---@diagnostic disable-next-line: deprecated
Spread = table.unpack or unpack -- fix for differences of API
-- min of numbers table
local numbers_table = { 1, 3, 2 }
print("math.min of numbers table : ", math.min(Spread(numbers_table)))
function ReadNumber()
---@diagnostic disable-next-line: discard-returns
----io.read() -- fix : https://stackoverflow.com/questions/14343502/io-read-isnt-working
local number = io.read('*n')
---@diagnostic disable-next-line: discard-returns
io.read() -- fix : https://stackoverflow.com/questions/14343502/io-read-isnt-working
return number
end
-- read numbers table
local numbers = {}
while true do
io.write('insert a number for table.insert() or quit : ')
local number = ReadNumber()
if not number then
print("quit received")
break
end
print("number : ", number)
table.insert(numbers, number)
end
-- max of previous numbers table
if #numbers == 0 then
print("math.max : no number")
else
print("math.max : ", math.max(Spread(numbers)))
end
-- no table but both min and max respectively
local min, max
while true do
io.write('insert a number , but no table.insert() or quit : ')
local number = ReadNumber()
if not number then
print("quit received")
break
end
print("number : ", number)
-- minimum
if not min then min = number end
if number < min then min = number end
print("min : ", min)
-- maximum
if not max then max = number end
if number > max then max = number end
print("max : ", max)
end
print("program end")