-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Description
This is ack.scm:
(define (ack m n)
(cond ((= m 0) (+ n 1))
((= n 0) (ack (- m 1) 1))
(else (ack (- m 1) (ack m (- n 1))))))
(display (= (ack 3 12) 32765))
(newline)scheme-rs stackoverflows if the input is STDIN (might be ok):
$ time bash -c "scheme-rs < ack.scm"
thread '<unknown>' (9199) has overflowed its stack
fatal runtime error: stack overflow, aborting
bash: Zeile 1: 9198 Abgebrochen scheme-rs < ack.scm
real 3m1,355s
user 4m38,267s
sys 0m44,885s
But throws an error if the input is a FILE:
$ time bash -c "scheme-rs ack.scm"
Error: Exception(#<compound-condition #<&syntax form: #<syntax:ack.scm:1:0 (define (ack m n) (cond ((= m 0) (+ n 1)) ((= n 0) (ack (- m 1) 1)) (else (ack (- m 1) (ack m (- n 1))))))> subform: Some(#<syntax:ack.scm:1:0 define>)> #<&message "undefined variable">>)
real 0m0,010s
user 0m0,007s
sys 0m0,004s
$ time bash -c "scheme-rs <(cat ack.scm)"
Error: Exception(#<compound-condition #<&syntax form: #<syntax:63:1:0 (define (ack m n) (cond ((= m 0) (+ n 1)) ((= n 0) (ack (- m 1) 1)) (else (ack (- m 1) (ack m (- n 1))))))> subform: Some(#<syntax:63:1:0 define>)> #<&message "undefined variable">>)
real 0m0,010s
user 0m0,010s
sys 0m0,000s
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels