Just evaluated this 12996734 is like 30 seconds. Very interesting little piece of code. Thanks for sharing.
Very nice indeed!I made a "crawling" factorial function, just as a proof of concept.(define (f:f y) (begin (setq f:n 1) (setq f:current 0) (push '(if (> y 1) (begin (inc f:current) (setq f:n (* f:n y)) (dec y) (if (and (> (length f:f) 3) (> f:current 2)) (pop f:f 2)) (push (last f:f) f:f -1)) f:n) f:f -1)))
And another one, where the list to be pushed is modified instead of using variables.http://pastebin.com/HdQ8hiyx
Brilliant, Joel!
Just evaluated this 12996734 is like 30 seconds. Very interesting little piece of code. Thanks for sharing.
ReplyDeleteVery nice indeed!
ReplyDeleteI made a "crawling" factorial function, just as a proof of concept.
(define (f:f y)
(begin
(setq f:n 1)
(setq f:current 0)
(push
'(if (> y 1)
(begin
(inc f:current)
(setq f:n (* f:n y))
(dec y)
(if (and (> (length f:f) 3) (> f:current 2))
(pop f:f 2))
(push (last f:f) f:f -1))
f:n)
f:f -1)))
And another one, where the list to be pushed is modified instead of using variables.
Deletehttp://pastebin.com/HdQ8hiyx
Brilliant, Joel!
ReplyDelete