<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<title>Random Subset</title>
[
(define (int obj) (and (string? obj) (floor (string->number obj))))

(define-input (int n) (int m))

(define (cons-sorted num numlist)
  (if (and (pair? numlist)
           (< (car numlist) num))
      (cons (car numlist) (cons-sorted num (cdr numlist)))
      (cons num numlist)))

(define (choose-new chosen-list count)
  (if (zero? count)
      chosen-list
      (let ((r (+ 1 (brl-random n))))
        (if (member r chosen-list)
            (choose-new chosen-list count)
            (choose-new (cons-sorted r chosen-list) (- count 1))))))

]
</head>
<body>

<h1>Random Subset</h1>

<form>

Generate <input type="text" name="m" size="5" value="[(or m "")]">
distinct numbers between 1 and
<input type="text" name="n" size="5" value="[(or n "")]">.<br>
<input type="submit" value="Generate Numbers">

</form>

[(brl-when (and n m (<= 1 m n 1000))
   (choose-new '() m))]

<p>[(brl-now)]</p>

<p align="right"><a href="[(brl-source-link brl-context)]">View Source</a></p>

</body>
</html>