LINUX.ORG.RU

Сообщения Slowbrozo

 

Упражнение из SICP (2).

[code=scheme][code] (define (sqrt-iter guess x) (if (good-enough? guess x) guess (sqrt-iter (improve guess x) x)) (define (improve guess x) (average guess (/ x guess))) (define (average x y) (/ (+ x y) 2 (define (good-enough? guess x) (< (abs (- (square guess) x)) 0.001)) (define (sqrt x) (sqrt-iter 1.0 x)) (define (square x) (* x x)) [/code]

Так вот, что мне смущает. [code=scheme][code](if (good-enough? guess x) guess (sqrt-iter (improve guess x) x))[/code]

Разве не идёт всё в порядке (if [предикат] [следствие] [альтернатива])?

Так где тут следствие, а где альтернатива? Я завис и не могу понять это уже очень долго.

Slowbrozo
()

Упражнение из SICP

(define (p) (p)) (define (test x y) (if (= x 0) 0 y))

(test 0 (p))

Проблема заключается в том, что при решении этой задачи апликативным методом, она зациклиться, а при нормальном методе будет выведен 0. Но как при нормальном методе может быть выведен ноль, если неизвестно чему ровняется p? Она в любом случае должна зациклиться. Разве нет?

Slowbrozo
()

RSS подписка на новые темы