Next: , Previous: , Up: libutils names   [Index]


7.1.2 Decomposing library names

The following bindings are exported by the library (vicare libraries).

Function: library-name-decompose obj

Scan obj validating it as a ?library-name as specified by R6RS. Return two values: the list of identifiers, the version specification. The version can be null. If obj is not a valid ?library-name: return #f and #f. The returned values may share structure with obj.

(library-name-decompose '(alpha))
⇒ (alpha) ()

(library-name-decompose '(alpha beta))
⇒ (alpha beta) ()

(library-name-decompose '(alpha beta gamma))
⇒ (alpha beta gamma) ()

(library-name-decompose '(alpha beta gamma ()))
⇒ (alpha beta gamma) ()

(library-name-decompose '(alpha beta gamma (1)))
⇒ (alpha beta gamma) (1)

(library-name-decompose '(alpha beta gamma (1 2 3)))
⇒ (alpha beta gamma) (1 2 3)

(library-name-decompose '(alpha beta gamma (1 A 3)))
⇒ #f #f

(library-name-decompose '(alpha 1 gamma (1 2 3)))
⇒ #f #f
Function: library-name->identifiers sexp

Given a symbolic expression compliant with the definition of ?library-name according to R6RS: return the list of identifiers. If sexp is not compliant return #f.

(library-name->identifiers '(alpha))
⇒ (alpha)

(library-name->identifiers '(alpha beta))
⇒ (alpha beta)

(library-name->identifiers '(alpha beta gamma))
⇒ (alpha beta gamma)

(library-name->identifiers '(alpha beta gamma ()))
⇒ (alpha beta gamma)

(library-name->identifiers '(alpha beta gamma (1)))
⇒ (alpha beta gamma)

(library-name->identifiers '(alpha beta gamma (1 2 3)))
⇒ (alpha beta gamma)
Function: library-name->version sexp

Given a symbolic expression compliant with the definition of ?library-name according to R6RS: return the list of version numbers. If sexp is not compliant return #f.

(library-name->version '(alpha))
⇒ ()

(library-name->version '(alpha beta))
⇒ ()

(library-name->version '(alpha beta gamma))
⇒ ()

(library-name->version '(alpha beta gamma ()))
⇒ ()

(library-name->version '(alpha beta gamma (1)))
⇒ (1)

(library-name->version '(alpha beta gamma (1 2 3)))
⇒ (1 2 3)

Next: , Previous: , Up: libutils names   [Index]