Valores de retorno

Los procedimientos de Scheme siempre devuelven un valor de retorno, que es el valor de la última expresión ejecutada en el procedimiento. El valor de retorno puede ser cualquier valor de Scheme válido, incluso una estructura de datos compleja o un procedimiento.

A veces, el usuario quiere tener varias expresiones de Scheme dentro de un procedimiento. Existen dos formas en que se pueden combinar distintas expresiones. La primera es el procedimiento begin, que permite evaluar varias expresiones, y devuelve el valor de la última expresión.

guile> (begin (+ 1 2) (- 5 8) (* 2 2))
4

La segunda forma de combinar varias expresiones es dentro de un bloque let. Dentro de un bloque let, se crean una serie de ligaduras o asignaciones, y después se evalúa una secuencia de expresiones que pueden incluir esas ligaduras o asignaciones. El valor de retorno del bloque let es el valor de retorno de la última sentencia del bloque let:

guile> (let ((x 2) (y 3) (z 4)) (display (+ x y)) (display (- z 4))
… (+ (* x y) (/ z x)))
508

Extender LilyPond v2.25.22 (development-branch).