- (list (list g!string g!index)
- (list string index)
- (list g!value)
- `(aset ,g!string ,g!index ,g!value)
- `(char ,g!string ,g!index))))
+ (values (list g!string g!index)
+ (list string index)
+ (list g!value)
+ `(aset ,g!string ,g!index ,g!value)
+ `(char ,g!string ,g!index))))
+
+
+(defun concat (&rest strs)
+ (flet ((concat-two (str1 str2)
+ (concatenate-storage-vector str1 str2)))
+ (!reduce #'concat-two strs "")))
+
+
+(defun string-upcase (string)
+ (let ((new (make-string (length string))))
+ (dotimes (i (length string) new)
+ (aset new i (char-upcase (char string i))))))
+
+(defun string-downcase (string)
+ (let ((new (make-string (length string))))
+ (dotimes (i (length string) new)
+ (aset new i (char-downcase (char string i))))))