This is your Reason (let.opt) definition.
let (let.opt) = (x, f) => switch (x) { | None => None | Some(x) => f(x) }; let (and.opt) = (a, b) => switch (a, b) { | (Some(a), Some(b)) => Some((a, b)) | _ => None }; let z = (a,b)=> { let.opt a = a and.opt b = b; Some(a + b); }; This is your Rescript file on ocaml@4.12.0:
//Demo.res let a = Some(10); let b = Some(3); Js.log2("using ocaml 4.12 compiled reasonml let.opt in Rescript", Opts.z(a,b)); Here is a gist.
Here is a project you can run:
idkjs / letop-rescript
using (let.opt) style in rescript
Resources: https://github.com/ocaml/ocaml/pull/1947
Melange:https://github.com/melange-re/melange
Rescript:https://rescript-lang.org/
Discord:https://discord.gg/KAJBzYaf
Top comments (1)
Do you mean explaining how is this applied ? And expects a and b, and returns a tuple, which I don’t see used in z nor in the first letop. Can you expand further ?