diff --git a/docs/langs/explicit-substitution/reduce/doAp.cic b/docs/langs/explicit-substitution/reduce/doAp.cic new file mode 100644 index 00000000..9bf6426b --- /dev/null +++ b/docs/langs/explicit-substitution/reduce/doAp.cic @@ -0,0 +1,12 @@ +import { Exp } from "../exp/index.cic" +import { Mod } from "../mod/Mod.cic" +import { reduce } from "./reduce.cic" + +export function doAp(mod: Mod, target: Exp, arg: Exp): Exp { + match (target) { + case Exp::Fn(name, ret) => + reduce(mod, Exp::Let([new Binding(name, arg)], ret)) + + case _ => Exp::Ap(target, arg) + } +}