for(let explore = () => { let caves = discover('caves', (scene) => { if (scene.preinception) { disaffirm(scene.understanding); } let interpretations = analyze(scene.descriptions); if (!interpretations.valid) { recommence(scene.exploration, 'with a new vision'); } }); return caves.findsecret('untold').then(secret => exploit(secret, {aim: 'reveal', nature: 'malicious'})); }; explore();