Updated interning strings (markdown)
							parent
							
								
									468ac97b26
								
							
						
					
					
						commit
						b7c7662420
					
				|  | @ -24,7 +24,7 @@ will return the value that **froboz** is bound to in the root namespace; | |||
| 
 | ||||
|     (eval foobar.froboz) | ||||
| 
 | ||||
| will return the value that **froboz** is bound to in a namespace which is the value of the name **foobar** in the current name namespace; and that | ||||
| will return the value that **froboz** is bound to in a namespace which is the value of the name **foobar** in the current namespace; and that | ||||
| 
 | ||||
|     (eval .system.users.simon.environment.froboz) | ||||
| 
 | ||||
|  | @ -32,6 +32,8 @@ will return the value that **froboz** is bound to in the environment of the user | |||
| 
 | ||||
| The exact path separator syntax may change, but the principal that when interning a symbol it is broken down into a path of tokens, and that the value of each token is sought in a namespace bound to the previous token, is likely to remain. | ||||
| 
 | ||||
| Obviously if **froboz** is interned in one namespace it is not necessarily interned in another, and vice versa. There's a potentially nasty problem here that two lexically identical strings might be bound in different namespaces, so that there is not one canonical interned **froboz**; if this turns out to cause problems in practice there will need to be a separate canonical [[hashtable]] of individual path elements. | ||||
| 
 | ||||
| Obviously this means there may be arbitrarily many paths which reference the same data item. This is intended. | ||||
| 
 | ||||
| ## Related functions | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue