import * as fs from 'node:fs' const fns = JSON.parse(fs.readFileSync('subsets.json')) const subsets = new Array(fns.length) for (let fn_i = 0; fn_i < fns.length; fn_i++) { const fn = fns[fn_i].str subsets[fn_i] = new Set for (let subfn_i = 0; subfn_i < fns.length; subfn_i++) { if (fn_i == subfn_i) { continue } const subfn = fns[subfn_i].str let is_subfn = true for (let char_i = 0; char_i < fn.length; char_i++) { const char = fn[char_i] const subchar = subfn[char_i] if (char != subchar && subchar != 'x') { is_subfn = false break } } if (is_subfn) { subsets[fn_i].add(subfn_i) } } } console.log(subsets) for (let subset_i = 0; subset_i < subsets.length; subset_i++) { const subset = subsets[subset_i] if (subset.size == 0) { continue } const fn_name = fns[subset_i].name console.log(fn_name) for (const subfn_i of subset) { const subfn_name = fns[subfn_i].name console.log(fn_name + '->' + subfn_name) } }