;;;-*-mode:lisp;package:bench-div2-*- ;;; From the "Dick Gabriel" Benchmark Series. ;;; Enhancements (C) Copyright 1983, Lisp Machine, Inc. ;;;BEGIN ;;;DIV2 ;;; Dividing by 2 using lists of n ()'s #-LISPM (declare (fixsw t)) (defun create-n (n) (do ((n n (1- n)) (a () (push () a))) ((= n 0) a))) (defun div2 (l) (do ((l l (cddr l)) (a () (push (car l) a))) ((null l) a))) (defun dv2 (l) (cond ((null l) ()) (t (cons (car l) (dv2 (cddr l)))))) (defun test1 (l) (do ((i 300. (1- i))) ((= i 0)) (div2 l) (div2 l) (div2 l) (div2 l))) (defun test2 (l) (do ((i 300. (1- i))) ((= i 0)) (dv2 l) (dv2 l) (dv2 l) (dv2 l))) (declare (special l)) (setq l (create-n 200.)) ;(include "timer.lsp") (timer timit1 (test1 l)) (timer timit2 (test2 l)) ;;;END