Not quite as concise, but this function is about 3x faster: function greatestLessThan pList,V put empty into R repeat for each item i in pList if i < V and i > R then put i into R end repeat return R end greatestLessThan