Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file: -- http://angg.twu.net/LUA/BinarySearch1.lua.html -- http://angg.twu.net/LUA/BinarySearch1.lua -- (find-angg "LUA/BinarySearch1.lua") -- Author: Eduardo Ochs <eduardoochs@gmail.com> -- -- (defun e () (interactive) (find-angg "LUA/BinarySearch1.lua")) BinarySearch = Class { type = "BinarySearch", __index = { middle = function (bs) return (bs.a + bs.b) / 2 end, newinterval = function (bs, newa, newb) return BinarySearch {a=newa, b=newb, f=bs.f} end, left = function (bs) return bs:newinterval(bs.a, bs:middle()) end, right = function (bs) return bs:newinterval(bs:middle(), bs.b) end, halve = function (bs, ntimes) for i=1,ntimes do if bs.f(bs:middle()) == bs.f(bs.a) then bs = bs:right() else bs = bs:left() end end return bs end, }, } --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "BinarySearch1.lua" bs = BinarySearch {a=0, b=10, f = function (x) return x^2 < 2 end} = bs:halve(10):middle() = bs:halve(100):middle() --]] -- Local Variables: -- coding: utf-8-unix -- End: