Leonidas Tsampros <[email protected]> writes: > scheme@(guile-user)> (define (cube x) > (* x x x)) > scheme@(guile-user)> (define (sum term a next b) > (if (> a b) > 0 > (+ (term a) > (sum term (next a) next b)))) > scheme@(guile-user)> (define (integral f a b dx) > (define (add-dx x) (+ x dx)) > (* (sum f (+ a (/ dx 2.0)) add-dx b) > dx)) > scheme@(guile-user)> (integral cube 0.0 1.0 0.01) > $1 = 0.24998750000000042 > scheme@(guile-user)> (integral cube 0.0 1.0 0.001) > $2 = 0.249999875000001 > scheme@(guile-user)> (integral cube 0.0 1.0 0.0001) > <unnamed port>:1:0: In procedure cube: > <unnamed port>:1:0: Throw to key `vm-error' with args `(vm-run "VM: Stack > overflow" ())'. > > Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. > scheme@(guile-user) [1]> ,q > scheme@(guile-user)> (integral cube 0.0 1.0 0.000001) > Aborted
This is now fixed in the git repository, and will be in Guile 2.0.10. http://git.savannah.gnu.org/gitweb/?p=guile.git;a=commitdiff;h=70057f3408f8bb469941fa3ab497076ec8f2a117 I'm closing this bug. Thanks! Mark
