Author: abaine Date: Fri Aug 10 18:15:27 2007 New Revision: 130
Modified: trunk/funds/src/f-array.lisp Log: Implemented make-f-array.
Modified: trunk/funds/src/f-array.lisp ============================================================================== --- trunk/funds/src/f-array.lisp (original) +++ trunk/funds/src/f-array.lisp Fri Aug 10 18:15:27 2007 @@ -2,7 +2,18 @@ (in-package :funds)
(defun make-f-array (size &key (initial-contents nil)) - ) + (let ((length (length initial-contents))) + (labels ((f (start end) + (if (= start end) + (make-binary-tree) + (let ((midpoint (floor (+ end start) 2))) + (make-instance 'binary-tree + :key midpoint :value (if (< start length) + (elt initial-contents midpoint) + nil) + :left (f start midpoint) + :right (f (1+ midpoint) end)))))) + (f 0 size))))
(defun f-array-elt (array index) )