-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Extend try with "success" handling #6318
Description
Original bug ID: 6318
Reporter: @yallop
Assigned to: @alainfrisch
Status: closed (set by @xavierleroy on 2015-12-11T18:26:59Z)
Resolution: fixed
Priority: normal
Severity: feature
Target version: 4.02.0+dev
Fixed in version: 4.02.0+dev
Category: ~DO NOT USE (was: OCaml general)
Tags: patch
Related to: #6422 #6423
Monitored by: @gasche @diml @ygrek bobot @jmeber @hcarty yminsky @mmottl
Bug description
I'd like to propose extending try with clauses that match the value of the body in the case where no exception is raised:
try expr
with pattern_1 -> expr_1
| ...
| pattern_n -> expr_n
| val pattern_1' -> expr_1'
| ...
| val pattern_n' -> expr_n'Adding a place to specify what should happen only in the "success" case has two benefits: it makes some code clearer, and it makes it easier to write tail recursive code, since expr_1'...expr_n' are in tail position.
I've posted a more detailed proposal here, with an implementation and some history:
http://ocamllabs.github.io/compiler-hacking/2014/02/04/handler-case.html