Jump to content

transition with fibonacci

Recommended Posts

;;little function to make a transition by FIBONACCI-seq
;;i have seen this idea in "slippery chicken" (by michael edwards),
;;so here is a - "not so smart" but working - basic-function.

(defun transition-with-fibonacci (number-of-values value-a value-b) 
  (let ((fib-length) (fib-seq) (all-seq))
    (setq fib-length (loop
                       for cnt = 1 then (incf cnt)
                       collect (sum (fibonacci 2 cnt)) into bag
                       when (> (car (last bag)) number-of-values)
                       do (return (1- (length bag)))) 
          fib-seq (fibonacci 2 fib-length)
          all-seq (append (reverse fib-seq) (loop repeat (- number-of-values (sum fib-seq))
                                              collect 1)))
    (loop for i in all-seq 
      append (loop repeat i
               for cnt = 0 then (incf cnt)
               when (= cnt 0)
               collect value-b else collect value-a))))

;;example-1 => only the process
(transition-with-fibonacci 70 1 2)

;;example-2 => with context = sequence with 1 or 2 (before/after transition)
 (append  (gen-repeat 10 1) 
          (transition-with-fibonacci 32 1 2)
          (gen-repeat 10 2))
 :zero-based t
 :point-radius 2
 :join-points t)


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

Terms of Use Privacy Policy