Defining procedures

Procedures are defined in Scheme with define

(define (function-name arg1 arg2 … argn)
 scheme-expression-that-gives-a-return-value)

For example, we could define a procedure to calculate the average:

guile> (define (average x y) (/ (+ x y) 2))
guile> average
$29 = #<procedure average (x y)>
guile>

Once a procedure is defined, it is called by putting the procedure name and the arguments in a list. For example, we can calculate the average of 3 and 12:

guile> (average 3 12)
$30 = 15/2
guile>

Extending LilyPond v2.27.0 (development-branch).