local fmt = require "fmt" local function map_range(a, b, s) return b[1] + (s - a[1]) * (b:back() - b[1]) / (a:back() - a[1]) end local a = range(0, 10) local b = range(-1, 0) for a as s do local t = map_range(a, b, s) fmt.print("%2d maps to % g", s, t) end