+
+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 closure with the given delayed argument. "
+ "If start and 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);
+}