summaryrefslogtreecommitdiff
path: root/examples/safe/untrusted.scm
blob: f3ae5fe9787457cf5c1e9f652463f823fdf0513e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
;;; examples/safe/untrusted.scm -- Scheme file to be run in a safe
;;; environment.

;;; Commentary:

;;; This is an example file to be evaluated by the `safe' program in
;;; this directory.
;;;
;;; *Note* that the files in this directory are only suitable for
;;; demonstration purposes, if you have to implement safe evaluation
;;; mechanisms in important environments, you will have to do more
;;; than shown here -- for example disabling input/output operations.

;;; Author: Martin Grabmueller
;;; Date: 2001-05-30

;;; Code:

;; fact -- the everlasting factorial function...
;;
(define (fact n)
  (if (< n 2)
    1
    (* n (fact (- n 1)))))

;; Display the factorial of 0..9 to the terminal.
;;
(do ((x 0 (+ x 1)))
    ((= x 11))
  (display (fact x))
  (newline))

;;; End of file.