#! /bin/sh #| Hey Emacs, this is -*-scheme-*- code! #$Id: fys.ss 5085 2007-11-01 01:36:35Z erich $ exec mzscheme -M errortrace --no-init-file --mute-banner --version --require "$0" -p "text-ui.ss" "schematics" "schemeunit.plt" -e "(exit (test/text-ui fys-tests 'verbose))" |# (module fys mzscheme (define (fisher-yates-shuffle! v) (define (swap! a b) (let ((tmp (vector-ref v a))) (vector-set! v a (vector-ref v b)) (vector-set! v b tmp))) (do ((i 0 (add1 i))) ((= i (vector-length v)) v) (let ((j (+ i (random (- (vector-length v) i))))) (swap! i j)))) (provide (all-defined)) )