LocalSymbol

LocalSymbol["name"]

represents a symbol whose value is persistently stored in the local file system.

LocalSymbol[obj]

represents a persistent symbol corresponding to the local object obj.

Details

  • Values can be assigned using LocalSymbol[name]=val or LocalSymbol[name]:=val.
  • LocalSymbol[name] evaluates to give the value assigned for LocalSymbol[name].
  • If no value has ever been assigned, LocalSymbol[name] does not exist and returns unevaluated. »
  • Values of local symbols are stored in local objects.
  • LocalSymbol["name"] by default references a local object with the specified name within the directory $LocalSymbolBase.
  • LocalSymbol["name",base] references a local object relative to the specified base.
  • Local symbols can be shared between users if appropriate permissions are set on the underlying file system objects.
  • In LocalSymbol["name"], "name" can be any string.
  • LocalSymbol[File["path"]] and LocalSymbol[relpath,File["path"]] are also supported.
  • Local symbols can be removed with Remove.

Examples

open allclose all

Basic Examples  (1)

Assign a value to a local symbol:

Retrieve the value:

Scope  (6)

Local symbols can be assigned delayed values:

Local symbols that have not been assigned remain unevaluated:

ValueQ[LocalSymbol[]] checks whether a local symbol has an assigned value:

LocalObjects can be used to list all existing local symbols:

Local symbols can be removed with Remove:

Local symbols work with reassignment functions such as Increment:

Local symbols work with reassignment functions such as AppendTo:

Generalizations & Extensions  (3)

Local symbols can be saved to any file:

The directory where a symbol should be saved can be given as the second argument:

Paths can also be specified with File:

Applications  (1)

Local symbols can be used to remember values across a kernel restart:

Properties & Relations  (5)

Local symbols are stored in local objects, so they can be accessed using LocalObject:

By default, local symbols are saved to a subdirectory of $LocalBase:

CloudSymbol provides for symbols in cloud storage:

Use a local symbol as a lock to synchronize access to a shared resource, such as a file:

Reassignment functions are thread safe and can be used in parallel computing without locking:

Possible Issues  (1)

Local symbols cannot be assigned subvalues or other special values:

Values of local symbols are not stored like other symbols:

Wolfram Research (2015), LocalSymbol, Wolfram Language function, https://reference.wolfram.com/language/ref/LocalSymbol.html (updated 2016).

Text

Wolfram Research (2015), LocalSymbol, Wolfram Language function, https://reference.wolfram.com/language/ref/LocalSymbol.html (updated 2016).

CMS

Wolfram Language. 2015. "LocalSymbol." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2016. https://reference.wolfram.com/language/ref/LocalSymbol.html.

APA

Wolfram Language. (2015). LocalSymbol. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/LocalSymbol.html

BibTeX

@misc{reference.wolfram_2023_localsymbol, author="Wolfram Research", title="{LocalSymbol}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/LocalSymbol.html}", note=[Accessed: 28-March-2024 ]}

BibLaTeX

@online{reference.wolfram_2023_localsymbol, organization={Wolfram Research}, title={LocalSymbol}, year={2016}, url={https://reference.wolfram.com/language/ref/LocalSymbol.html}, note=[Accessed: 28-March-2024 ]}