Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
irasnyd@duallie lisp $ cat hw12.lisp;Written By: Ira Snyder;Due Date: 02-28-2005;Homework #: HW12;;; This is the generic implementation of the recursive schema OP-SOME.;;; It takes 3 parameters:;;; CONDITION: when this is true, the operation happens on that element;;; OP: the operation to happen on the values that satisfy CONDITION;;; ARG: the list of items on which to operate;;;;;; Example: (OP-SOME #'oddp #'sq '(1 2 3 4 5)) -> (1 2 9 4 25)(defun OP-SOME (CONDITION OP ARG)(cond((null ARG) nil)((funcall CONDITION (car ARG)) (cons (funcall OP (car ARG))(OP-SOME CONDITION OP (cdr ARG))))(t (cons (car ARG)(OP-SOME CONDITION OP (cdr ARG))))));;; Returns the square of the number passed in as a parameter.;;; This is to aid in testing of OP-SOME(defun SQ (NUM)(* NUM NUM))irasnyd@duallie lisp $ clisp -q[1]> (load 'hw12.lisp);; Loading file hw12.lisp ...;; Loaded file hw12.lispT[2]> (OP-SOME #'oddp #'SQ nil)NIL[3]> (OP-SOME #'oddp #'SQ '(2))(2)[4]> (OP-SOME #'oddp #'SQ '(3))(9)[5]> (OP-SOME #'oddp #'SQ '(3 6 4 5 2))(9 6 4 25 2)[6]> (bye)irasnyd@duallie lisp $