diff --git a/examples/compare.cosmo b/examples/compare.cosmo new file mode 100644 index 0000000..00319a7 --- /dev/null +++ b/examples/compare.cosmo @@ -0,0 +1,40 @@ +var strtable = [] +var strLen = 4 // length of all strings to generate +var AByte = "A":byte() // grabs the ascii value of 'A' + +proto stringBuilder + function __init(self, length) + self.len = length + end + + // we are the iterator object lol + function __iter(self) + self.x = 0 + return self + end + + function __next(self) + var x = self.x++ + + // if we've generated all the possible strings, return nil ending the loop + if x >= 26 ^ self.len then + return nil + end + + // generate the string + var str = "" + for (var i = 0; i < self.len; i++) do + str = string.char(AByte + (x % 26)) .. str + + x = math.floor(x / 26) + end + + return str + end +end + +// generate a bunch of strings & populate the table +print("generating " .. 26 ^ strLen .. " strings...") +for str in stringBuilder(strLen) do + strtable[str] = true +end \ No newline at end of file