Content deleted Content added
TomasRiker (talk | contribs) Tags: Mobile edit Mobile web edit Advanced mobile edit |
|||
Line 127:
===Genealogy and variants===
Over its sixty-year history, Lisp has spawned many variations on the core theme of an S-expression language. Some of these variations have been standardized and implemented by different groups with different priorities (for example, both [[Common Lisp]] and [[Scheme (programming language)|Scheme]] have multiple implementations). However, in other cases a software project defines a
Differences between dialects (and/or implementations) may be quite visible—for instance, Common Lisp uses the keyword <code>defun</code> to name a function, but Scheme uses <code>define</code>.<ref name="jbyrI">Common Lisp: <code>(defun f (x) x)</code><br />Scheme: <code>(define f (lambda (x) x))</code> or <code>(define (f x) x)</code></ref> Within a dialect that is standardized conforming implementations support the same core language, but with different extensions and libraries. This sometimes also creates quite visible changes from the base language - for instance, [[GNU Guile|Guile]] (an implementation of Scheme) uses <code>define*</code> to create functions which can have [[default argument]]s and/or [[Named parameter|keyword arguments]], neither of which are standardized.
|