;;;; .title SchemeDoc Demo
;;;; .author Kurt Normark
;;;; .affiliation Aalborg University, Denmark
;;;; This is a brief example of a Scheme
;;;; program with multi-semicolon SchemeDoc comments.
; This comment is not extracted.
;;; Factorials.
;;; .section-id fac-stuff
;;; This section demonstrates a plain function.
;; The factorial function. Also known as n!
;; .parameter n An integer
;; .pre-condition n >= 0
;; .returns n * (n-1) * ... * 1
(define (fac n)
(if (= n 0) 1 (* n (fac (- n 1)))))
;;; List selection functions.
;;; .section-id list-stuff
;;; This section demonstrates two aliased functions.
;; An alias of car.
;; .returns The first component of a cons cell
;; .form (head pair)
;; .parameter pair A cons cell
(define head car)
;; An alias of cdr.
;; .returns The second component of a cons cell
;; .form (tail pair)
;; .parameter pair A cons cell
(define tail cdr)