(Symbol Primitives): In gensym, cross reference
[bpt/guile.git] / doc / ref / scheme-data.texi
index 950e8be..7fa4ac6 100755 (executable)
@@ -2743,15 +2743,16 @@ code.  The @code{gensym} primitive meets this need:
 @deffnx {C Function} scm_gensym (prefix)
 Create a new symbol with a name constructed from a prefix and a counter
 value.  The string @var{prefix} can be specified as an optional
-argument.  Default prefix is @samp{ g}.  The counter is increased by 1
+argument.  Default prefix is @samp{@w{ g}}.  The counter is increased by 1
 at each call.  There is no provision for resetting the counter.
 @end deffn
 
 The symbols generated by @code{gensym} are @emph{likely} to be unique,
 since their names begin with a space and it is only otherwise possible
 to generate such symbols if a programmer goes out of their way to do
-so.  The 1.8 release of Guile will include a way of creating
-symbols that are @emph{guaranteed} to be unique.
+so.  Uniqueness can be guaranteed by instead using uninterned symbols
+(@pxref{Symbol Uninterned}), though they can't be usefully written out
+and read back in.
 
 
 @node Symbol Props
@@ -3197,6 +3198,12 @@ retrieved using the @code{keyword-dash-symbol} procedure.
 @deffn {Scheme Procedure} make-keyword-from-dash-symbol symbol
 @deffnx {C Function} scm_make_keyword_from_dash_symbol (symbol)
 Make a keyword object from a @var{symbol} that starts with a dash.
+For example,
+
+@example
+(make-keyword-from-dash-symbol '-foo)
+@result{} #:foo
+@end example
 @end deffn
 
 @deffn {Scheme Procedure} keyword? obj
@@ -3209,8 +3216,26 @@ Return @code{#t} if the argument @var{obj} is a keyword, else
 @deffnx {C Function} scm_keyword_dash_symbol (keyword)
 Return the dash symbol for @var{keyword}.
 This is the inverse of @code{make-keyword-from-dash-symbol}.
+For example,
+
+@example
+(keyword-dash-symbol #:foo)
+@result{} -foo
+@end example
 @end deffn
 
+@deftypefn {C Function} SCM scm_c_make_keyword (char *@var{str})
+Make a keyword object from a string.  For example,
+
+@example
+scm_c_make_keyword ("foo")
+@result{} #:foo
+@end example
+@c
+@c  FIXME: What can be said about the string argument?  Currently it's
+@c  not used after creation, but should that be documented?
+@end deftypefn
+
 
 @node Other Types
 @section ``Functionality-Centric'' Data Types