Dans le programme ci-dessous, je ne comprends pas la troixième ligne...
"Loop" c'est le nom d'une procédure? d'un let nommé? Est-ce que c'est la même chose?
Mais pourquoi suivi de "()" ? Cela signifie qu'il n'y a pas d'affectation?
Sinon pourquoi ne pas noter : "(let (loop ())" ?
Et quand, ligne 9, on appelle loop, à quelle ligne celà renvoie-t-il? La 3 ou la 4?
1- (define (recherche-linéaire T V)
2- (let ((pos 0))
3- (let loop ()
4- (if (>= pos (vector-length T))
5- -1
6- (if (equal? v (vector-ref T pos))
7- pos
8- (begin
9- (set! pos (+ pos 1)) (loop)))))))
Même question pour le codage 2, quand, ligne 7, on appelle loop, à quelle ligne celà renvoie-t-il? La 2 ou la 3?
1- (define (recherche-linéaire T V)
2- (let loop ((pos 0))
3- (if (>= pos (vector-length T))
4- -1
5- (if (equal? v (vector-ref T pos))
6- pos
7- (loop ( + 1 pos))))))
Merci d'avance si vous pouvez m'aider...