package prog8tests.ast.helpers fun mapCombinations(dim1: Iterable, dim2: Iterable, combine2: (A, B) -> R) = sequence { for (a in dim1) for (b in dim2) yield(combine2(a, b)) }.toList() fun mapCombinations(dim1: Iterable, dim2: Iterable, dim3: Iterable, combine3: (A, B, C) -> R) = sequence { for (a in dim1) for (b in dim2) for (c in dim3) yield(combine3(a, b, c)) }.toList() fun mapCombinations(dim1: Iterable, dim2: Iterable, dim3: Iterable, dim4: Iterable, combine4: (A, B, C, D) -> R) = sequence { for (a in dim1) for (b in dim2) for (c in dim3) for (d in dim4) yield(combine4(a, b, c, d)) }.toList()