+
+LY_DEFINE (ly_eval_simple_closure, "ly:eval-simple-closure",
+ 2, 2, 0, (SCM delayed, SCM closure, SCM scm_start, SCM scm_end),
+ "Evaluate a simple @var{closure} with the given @var{delayed}"
+ " argument. If @var{scm-start} and @var{scm-end} are defined,"
+ " evaluate it purely with those start and end points.")
+{
+ bool pure = (scm_is_number (scm_start) && scm_is_number (scm_end));
+ int start = robust_scm2int (scm_start, 0);
+ int end = robust_scm2int (scm_end, 0);
+ SCM expr = simple_closure_expression (closure);
+ return evaluate_with_simple_closure (delayed, expr, pure, start, end);
+}