Jeder kennt es: Man programmiert etwas und plötzlich kommt etwas ganz anderes dabei heraus. Programmierfehler können echt nervig sein, aber manchmal kommen dabei echt lustige Sache zustande. Ich finde diese könnte man mal sammeln, also wer solche Beispiele hat:hier rein damit
.
Ich bring auch gleich das erste Beispiel. Programmieren I (übung4) sollte mit Hilfe eines gegebenen Verfahrens und einer Funktion my-iter der invers-tangens genähert werden. Das Ergebnis war diese Prozedur, die bei x=1 Pi nährt:
(define (my-iter start-value next-value finished?)
(define (inner-iter cur-val step)
(if (finished? cur-val step)
cur-val
(inner-iter (next-value cur-val step) (+ step 1))))
(inner-iter start-value 0))
(define (square x) (* x x))
(define (inv-tangent x n)
(/ x (my-iter (+ 1 (* 2 (- n 1)))
(lambda (cur-val step)
(+ 1 (* 2 (- n step 1))) (/ (* (* (- n step 1) x) (* (- n step 1) x)) cur-val))
(lambda (cur-val step) (>= (+ 1 step) n)))))
(* 1.0(inv-tangent 1 9000))