MVFM

error/try

Attempt an expression and recover from failure with a catch branch

// 1. make an app
const app = mvfm(prelude, error);

// 2. make a program
const prog = app({ x: "number" }, ($) => {
  const risky = $.cond($.gt($.input.x, 10))
    .t($.input.x)
    .f($.fail("too small"));
  return $.try(risky).catch((err) =>
    $.concat("recovered: ", err)
  );
});

// 3. run
await fold(
  defaults(app),
  injectInput(prog, { x: 3 })
);
Ctrl+Enter