package ppx_defer
A syntax extension to provide a somewhat Go-like defer
Install
Dune Dependency
Authors
Maintainers
Sources
v0.2.0.tar.gz
sha256=f12eaa45454428c802cc6a47f6624ddc35e3a561208263b2eeea85ca344d98f1
md5=a9505957d567684a753f661c583c2b8a
Description
[%defer e1]; e2
or [%defer.lwt e1]; e2
will defer the evaluation of e1
until after e2
is evaluated.
README
ppx_defer
This is an OCaml language extension implementing a somewhat Go-ish [%defer expr1]; expr2
which will defer the evaluation of expr1
until after expr2
. expr1
will still be evaluated if expr2
raises an exception.
If you are using Lwt you can use [%defer.lwt expr1]; expr2
.
Thanks to Drup for guidance in figuring out ppx details!
Using ppx_defer
let () =
let ic = open_in_bin "some_file" in
[%defer close_in ic];
let length = in_channel_length ic in
let bytes = really_input_string ic length in
print_endline bytes
See the examples/
directory for more examples.
Dependencies (4)
-
ocamlbuild
build
-
ocamlfind
build
-
ppx_tools
>= "0.99.3"
-
ocaml
>= "4.02.3"
Dev Dependencies
None
Used by
None
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page