Symbol (programming): Difference between revisions

Content deleted Content added
m Examples: meaining → meaning
Line 3:
In the most trivial [[implementation]], they are essentially named [[integer]]s (e.g. the [[enumerated type]] in C).
 
== Support ==
 
The following [[programming language]]s provide support for symbols:
{| class="wikitable sortable"
Line 37 ⟶ 36:
|}
 
=== Lisp ===
 
A symbol in [[Lisp (programming language)|Lisp]] is unique in a [[namespace]] (or ''package'' in [[Common Lisp]]). Symbols can be tested for equality with the function EQ. Lisp programs can generate new symbols at runtime. When Lisp reads data that contains textual represented symbols, existing symbols are referenced. If a symbol is unknown, the Lisp reader creates a new symbol.
 
In [[Common Lisp]] symbols have the following attributes: a name, a value, a function, a list of properties and a package.<ref>[http://www.lispworks.com/documentation/HyperSpec/Body/t_symbol.htm Common Lisp HyperSpec, system class Symbol]</ref>
 
In [[Common Lisp]] symbols may use any characters, including whitespace, such as spaces and newlines. If a symbol contains a whitespace character it needs to be written as |this is a symbol|. Symbols can be used as identifiers for any kind of named programming constructs: variables, functions, macros, classes, types, goto tags and more.
Symbols can be interned in a package.<ref>[http://www.lispworks.com/documentation/HyperSpec/Body/t_pkg.htm#package Common Lisp HyperSpec, system class Package]</ref> Keyword symbols are self-evaluating<ref>[[Peter Norvig]]: ''Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp'', Morgan Kaufmann, 1991, ISBN 1-55860-191-0, [http://norvig.com/paip.html Web]</ref> and interned in the package named KEYWORD.
 
==== Examples ====
 
The following is a simple external representation of a [[Common Lisp]] symbol:
<source lang="lisp">
Line 58 ⟶ 55:
</source>
 
In [[Common Lisp]] symbols with a leading colon in their printed representations are [[Keyword (computer programming)|keyword symbols]]. These are interned in the keyword package.
<source lang="lisp">
:keyword-symbol
Line 74 ⟶ 71:
 
===Prolog===
In [[Prolog (programming language)|Prolog]], symbols (or atoms) are the primary primitive data types, similar to numbers.<ref name=Bratko2001>{{Cite book | last1 = Bratko | first1 = Ivan | title = Prolog programming for artificial intelligence | year = 2001 | publisher = Addison Wesley | ___location = Harlow, England ; New York | isbn = 0-201-40375-7 | pages = }}</ref> The exact notation may differ in different [[Prolog (programming language)|Prolog]]'s dialects. However, it is always quite simple (no quotations or special beginning characters are necessary).
 
Contrary to other languages, it is possible to give symbols some ''meaning'' by creating some [[Prolog (programming language)|Prolog]]'s facts and/or rules.
 
====Examples====
Line 149 ⟶ 146:
</source>
 
== References ==
<references/>