lisp. Пример рекурсивного поиска значений квадратных корней

(define (square x)
    (* x x))

(define (abs x)
    (if (< x 0) (- x) x))

(define (average a b)
    (/ (+ a b) 2))

(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 (good-enough? guess x)
    (< (abs (- (square guess) x)) 0.01))
   
(define (sqrt x)
    (sqrt-iter 1.0 x))


Попробуем вызвать функцию sqrt

> (sqrt 4)
2.000609756097561

Как видно из результата, для приближения к более точным результатам необходимо задать большую точность.

C/C++. Arrays. На заметку



#include <stdio.h>

int main() {   
    int nums[] = {1, 2, 3, 4};
   
    // nums[3] == *(nums + 3) == *(3 + nums) == 3[nums]
   
    printf("%i\n", nums[3]);         // 4
    printf("%i\n", *(nums + 3));   // 4
    printf("%i\n", *(3 + nums));   // 4
    printf("%i\n", 3[nums]);         // 4
   
    return 0;
}