scheme:apply

Un article de Polydoc.

!!! Synopsis ==

(apply proc L) -> (proc L1 L2 L3...)

[modifier] Description

En Scheme, de nombreuses fonctions comme + ou > prennent autant d'arguments que l'on veut. Par exemple

(> a b c d)

est valide et renvoie #t si a, b, c et d sont rangés dans l'ordre décroissant.

Toute fois, il est impossible d'écrire

(> foo)

même si foo est une liste d'éléments dont on voudrait vérifier l'ordre.

apply sert donc à appliquer une fonction à une liste.

[modifier] Exemples

> (let ((liste '(1 2 3 4)))
    (apply < liste))
#t
> (let ((liste '(1 2 3)))
    (apply / liste))
1/6
> (let ((liste '('(1 2 3) '(1 2 3))))
    (apply equal? liste))
#t