1 (define-module (lang elisp primitives strings)
2 #:use-module (lang elisp internals fset)
3 #:use-module (lang elisp internals null)
4 #:use-module (lang elisp internals signal))
6 (fset 'substring substring)
14 ((list? arg) (list->string arg))
15 ((vector? arg) (list->string (vector->list arg)))
16 (else (error "Wrong type argument for concat"))))
19 (fset 'string-to-number string->number)
21 (fset 'number-to-string number->string)
23 (fset 'string-lessp (lambda->nil string<?))
24 (fset 'string< 'string-lessp)
28 (cond ((vector? array) (vector-ref array idx))
29 ((string? array) (char->integer (string-ref array idx)))
30 (else (wta 'arrayp array 1)))))
33 (lambda (array idx newelt)
34 (cond ((vector? array) (vector-set! array idx newelt))
35 ((string? array) (string-set! array idx (integer->char newelt)))
36 (else (wta 'arrayp array 1)))))
38 (fset 'stringp (lambda->nil string?))