ppx_deferversion
Go-like `[%defer later]; now` syntax.
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.
Author | Hezekiah M. Carty <hez@0ok.org> |
---|---|
License | MIT |
Published | |
Homepage | https://github.com/hcarty/ppx_defer |
Issue Tracker | https://github.com/hcarty/ppx_defer/issues |
Maintainer | Hezekiah M. Carty <hez@0ok.org> |
Dependencies |
|
Source [http] | https://github.com/hcarty/ppx_defer/releases/download/v0.3.0/ppx_defer-0.3.0.tbz sha256=c2fe82c787f43650ab5daf82e8ecd2d41a1e6444bd54ec82453cfbb34a4007eb md5=ce43604abdf98806c2321481ecf6e75b |
Edit | https://github.com/ocaml/opam-repository/tree/master/packages/ppx_defer/ppx_defer.0.3.0/opam |
No package is dependent