Implement SYMBOL.
authorChris Hanson <org/chris-hanson/cph>
Thu, 15 Jul 2004 04:05:39 +0000 (04:05 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 15 Jul 2004 04:05:39 +0000 (04:05 +0000)
v7/src/runtime/runtime.pkg
v7/src/runtime/symbol.scm

index 485b6f6f34d084ad5c686873cf5fe680718e1900..ddc6f5fc12ab3a606fa6474a95b66252b0897397 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: runtime.pkg,v 14.489 2004/07/04 05:28:56 cph Exp $
+$Id: runtime.pkg,v 14.490 2004/07/15 04:05:16 cph Exp $
 
 Copyright 1988,1989,1990,1991,1992,1993 Massachusetts Institute of Technology
 Copyright 1994,1995,1996,1997,1998,1999 Massachusetts Institute of Technology
@@ -466,6 +466,7 @@ USA.
          string-head->symbol
          string-tail->symbol
          substring->symbol
+         symbol
          symbol->string
          symbol-append
          symbol-hash
index 0739f7654a2189a8c3d453fd604f8ae88e761c5f..6a324019194a1b9a83e3d62c2fffa1c8a7160b30 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: symbol.scm,v 1.14 2004/01/15 20:59:12 cph Exp $
+$Id: symbol.scm,v 1.15 2004/07/15 04:05:39 cph Exp $
 
 Copyright 1992,1993,2001,2003,2004 Massachusetts Institute of Technology
 
@@ -75,6 +75,20 @@ USA.
 
 (define (string-tail->symbol string start)
   ((ucode-primitive string->symbol) (string-tail string start)))
+
+(define (symbol . objects)
+  ((ucode-primitive string->symbol)
+   (apply string-append
+         (map (lambda (object)
+                (cond ((string? object) object)
+                      ((symbol? object) (symbol-name object))
+                      ((number? object) (number->string object))
+                      ((not object) "")
+                      (else
+                       (error:wrong-type-argument object
+                                                  "symbol component"
+                                                  'SYMBOL))))
+              objects))))
 \f
 (define (intern string)
   (if (string-lower-case? string)