«Common Lisp»–ի խմբագրումների տարբերություն

Content deleted Content added
չNo edit summary
No edit summary
Տող 21.
 
=== Լոկալ ֆունկցիաներ ===
 
Ֆունկցիայի մարմնում լոկալ ֆունկցիան սահմանվում է <code>labels</code> և <code>flet</code> կառուցվածքներով։ <code>labels</code>-ի օգնությամբ սահմանված ֆունկցիաները տեսանելի են միմյանց համար և կարող են պարունակել ռեկուրսիա կամ փոխադարձ ռեկուրսիա։ <code>flet</code> կառուցվածքի օգնությամբ սահմանված լոկալ ֆունկցիաները իրարից անկախ են։
 
== Հաստատուններ և փոփոխականներ ==
Տող 35 ⟶ 37՝
 
=== Լոկալ փոփոխականներ ===
 
Լոկալ (լեքսիկական) փոփոխականները ստեղծվում են <code>let</code> և <code>let*</code> կառուցվածքների մարմնում։ Օրինակ, հետևյալ արտահայտության մեջ ստեղծված են <code>v0</code>, <code>v1</code>, <code>v2</code> և <code>v3</code> լոկալ փոփոխականները, որոնցից առաջին երեքին արժեք է տրված, իսկ չորրորդին՝ ոչ (վերինն ընդունում է <code>nil</code> արժեքը)։
 
<source lang="lisp">
(let ((v0 1)
(v1 "abc")
(v2 '(x y))
v3)
#| ... |#
)
</source>
 
<code>let</code> կառուցվածքը և <code>let*</code> կառուցվածքից տարբերվում է նրանով, որ առաջինում փոփոխականներն արժեքներ վերագրումը կատարվում է զուգահեռաբար՝ միմյանցից անկախ, իրկ երկրորդ դեպքում՝ հաջորդաբար։ <code>let*</code> կառուցվածքի ամեն մի փոփոխականը կարող է օգտագործել իր նախորդի արժեքը։ Օրինակ,
 
<source lang="lisp">
(let* ((v0 2)
(v1 (* v0 3))
(v2 (+ v1 777))
#| ... |#
)
</source>
 
== Մակրոսներ ==
 
Common Lisp լեզվի մակրոսների մեխանիզմը լեզվի ընդլայնման հիմնական եղանակն է։ Այն հնարավորություն է լեզուն հարստացնել նոր գործողություններով։ տալիս Մակրոսները սահմանվում են <code>defmacro</code> մակրոսով։
 
== Ստրուկտուրաներ ==
Ստացված է «https://hy.wikipedia.org/wiki/Common_Lisp» էջից