1 (изменено: Phoenixxx_Czar, 2021-04-06 00:40:25)

Тема: AHK: Оптимизировать/исправить функции

Хочу понять, можно ли как-то улучшить функции max и min класса Math?

class Math
{
	max(numbers*)
	{
		numbers := arrayFlat(numbers)

		max := numbers[1]
		for k, v in numbers
		{
			if (max < v)
			{
				max := v
			}
		}

		return max
	}

	min(numbers*)
	{
		numbers := arrayFlat(numbers)

		min := numbers[1]
		for k, v in numbers
		{
			if (min > v)
			{
				min := v
			}
		}

		return min
	}
}

arrayFlat(arr)
{
	Loop % len := arr.Count()
	{
		i := len - A_Index + 1
		if IsObject(item := arr[i])
		{
			arr.RemoveAt(i)
			arr.InsertAt(i, arrayFlat(item)*)
		}
	}
	Return arr
}

Использовать min/max стандартные не имею возможности ибо компилятор использует 1.1.25.01 версию (если есть установщик этой версии, было бы не плохо).

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)