home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / guile / 1.8 / lang / elisp / primitives / strings.scm < prev    next >
Encoding:
Text File  |  2008-12-17  |  1.1 KB  |  41 lines

  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))
  5.  
  6. (fset 'substring substring)
  7.  
  8. (fset 'concat
  9.       (lambda args
  10.     (apply string-append
  11.            (map (lambda (arg)
  12.               (cond
  13.                ((string? arg) arg)
  14.                ((list? arg) (list->string arg))
  15.                ((vector? arg) (list->string (vector->list arg)))
  16.                (else (error "Wrong type argument for concat"))))
  17.             args))))
  18.  
  19. (fset 'string-to-number string->number)
  20.  
  21. (fset 'number-to-string number->string)
  22.  
  23. (fset 'string-lessp (lambda->nil string<?))
  24. (fset 'string< 'string-lessp)
  25.  
  26. (fset 'aref
  27.       (lambda (array idx)
  28.     (cond ((vector? array) (vector-ref array idx))
  29.           ((string? array) (char->integer (string-ref array idx)))
  30.           (else (wta 'arrayp array 1)))))
  31.  
  32. (fset 'aset
  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)))))
  37.  
  38. (fset 'stringp (lambda->nil string?))
  39.  
  40. (fset 'vector vector)
  41.