<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%84%D9%8A%D8%B3%D8%A8</id>
	<title>ليسب - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%84%D9%8A%D8%B3%D8%A8"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%84%D9%8A%D8%B3%D8%A8&amp;action=history"/>
	<updated>2026-06-05T12:23:45Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://3rabica.org/index.php?title=%D9%84%D9%8A%D8%B3%D8%A8&amp;diff=1276138&amp;oldid=prev</id>
		<title>عبد العزيز: بوت:إضافة بوابة (بوابة:الولايات المتحدة,بوابة:علم الحاسوب)</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%84%D9%8A%D8%B3%D8%A8&amp;diff=1276138&amp;oldid=prev"/>
		<updated>2023-11-24T09:52:54Z</updated>

		<summary type="html">&lt;p&gt;بوت:إضافة بوابة (بوابة:الولايات المتحدة,بوابة:علم الحاسوب)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{بطاقة لغة برمجة}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ليسب&amp;#039;&amp;#039;&amp;#039; {{إنج|LISP أو Lisp}} هي [[لغة برمجة]] ذات تاريخ عريق، فقد تم وضع مواصفاتها عام 1958 وبذلك تحل بعد ال[[فورتران]] التي طورت قبلها بسنة، كثاني [[لغة برمجة عالية المستوى]].&amp;lt;ref&amp;gt;{{استشهاد ويب|الأخير=Weinreb|الأول=Daniel|عنوان=Common Lisp Implementations: A Survey|مسار=http://common-lisp.net/~dlw/LispSurvey.html|تاريخ الوصول=4 April 2012| مسار أرشيف = https://web.archive.org/web/20180622083812/https://common-lisp.net/~dlw/LispSurvey.html | تاريخ أرشيف = 22 يونيو 2018|حالة المسار=dead}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://hal.inria.fr/file/index/docid/70041/filename/RT-0126.pdf Outils de generation d’interfaces : etat de l’art et classification by H. El Mrabet] {{Webarchive|url=https://web.archive.org/web/20171001122327/https://hal.archives-ouvertes.fr/file/index/docid/70041/filename/RT-0126.pdf |date=01 أكتوبر 2017}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{استشهاد ويب|مسار=https://www.iso.org/standard/22987.html |عنوان=ISO/IEC 13816:1997 |ناشر=Iso.org |تاريخ=2007-10-01 |تاريخ الوصول=2013-11-15| مسار أرشيف = https://web.archive.org/web/20160730151347/http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=22987 | تاريخ أرشيف = 30 يوليو 2016 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
وضعت ليسب كلغة [[ترميز]] رياضية عملية وفق تعريف تفاضل لامبدا وتكاملها لألونزو تشرش Alonzo Church&amp;#039;s Lambda Calculus، لكنه سرعان ما فضل استخدامها في أبحاث [[ذكاء اصطناعي|الذكاء الاصطناعي]]، وبتصدرها كإحدى أقدم اللغات، قدمت ليسب مبادئ عديدة في [[علم الحاسوب|علوم الحاسب]] كبنى البيانات الشجرية Tree Data Structures و[[برمجة كائنية التوجه|البرمجة كائنية التوجه]].&lt;br /&gt;
&lt;br /&gt;
تشير ليسب إلى المصطلح LISt Processing language، [[قائمة متصلة|القوائم المتصلة]] {{إنج|Linked Lists}}إحدى بنى البيانات الأساسية للغة، بل إن كود المصدر للغة مكون من قوائم، وكنتيجة لذلك، تعامل برامج ليسب كود المصدر ك[[بنية بيانات]] Data Structure ما يعطي شأنا لنظام [[ماكرو (علم الحاسوب)|الماكرو]] Macro الذي يسمح للمبرمجين بإنشاء صيغ جديدة أو لغة مدمجة مختصة المجال في ليسب Domain-specific Programming Language.&lt;br /&gt;
&lt;br /&gt;
التبادل بين الكود والبيانات يعطي للغة ليسب صيغة تعرف فورية Instantly Recognizable Syntax، ف[[برنامج (توضيح)|برامج]] ليسب مكتوبة بشكل التعبير الرمزي S-expression (ترمز S إلى Symbol) أو كقوائم محاطة بأقواس، فعند استدعاء دالة Function &amp;quot;f&amp;quot; لها [[وسائط|الوسائط]] Arguments x وy وz، تكتب تلك الدالة كالتالي:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (f x y z)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== تاريخ ليسب ==&lt;br /&gt;
&lt;br /&gt;
قام باختراع ليسب الأمريكي جون مككارثي عام 1958 في [[معهد ماساتشوستس للتكنولوجيا|معهد ماساتشوستس للتقنية]]. مككارثي نشر تصميمه على الورق في مجلة Communications of the ACM بعنوان &amp;quot;الدوال المتعددة للتعابير الرمزية وحسابها بالآلة &amp;quot;الجزء الأول&amp;quot; Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I (علما أنه لم ينشر الجزء الثاني مطلقا)، أظهر أنه بواسطة بعض المعاملات البسيطة وإجراء ترميز للدوال، يمكن بناء لغة تطابق فكرة الشمولية لتورنغ لكن من أجل الخوارزميات.&lt;br /&gt;
&lt;br /&gt;
أول من قام بتنفيذ هذا التصميم كان ستيف راسل على جهاز IBM 704، بينما ظهر أول مترجم [[مصرف (حوسبة)|مترجم]] ليسب كامل كان على يدي تيم هارت Tim Hart ومايك ليفن Mike Levin في [[معهد ماساتشوستس للتكنولوجيا|معهد ماساتشوستس للتقنية]] عام 1962، اللغة التي قاما ببنائها أقرب للغة المنتشرة حاليا من التي صممها مككارثي.&lt;br /&gt;
&lt;br /&gt;
=== بعض إصدارات ليسب ===&lt;br /&gt;
&lt;br /&gt;
* LISP 1.5.&lt;br /&gt;
* Standard LISP.&lt;br /&gt;
* Common LISP: إحدى الإصدارات الأكثر انتشارا.&lt;br /&gt;
* Scheme: إحدى الإصدارات الأكثر انتشارا، من تطوير غاي إل. ستيل وجيرالد جاي سسمان.&lt;br /&gt;
* Arc.&lt;br /&gt;
* Clojure.&lt;br /&gt;
* Autolisp: إصدارة ليسب المستخدمة في برنامج AutoCAD.&lt;br /&gt;
&lt;br /&gt;
== الصيغة والمفردات في ليسب ==&lt;br /&gt;
&lt;br /&gt;
تعد لغة ليسب لغة تعبيرية التوجه Expression-oriented Language. وبخلاف أغلب اللغات، لا فارق بين التعبيرات Expressions والجمل Statements، فالكود يكتب جميعه كتعبيرات.&lt;br /&gt;
&lt;br /&gt;
لعل ما يميز صيغة كود ليسب الأقواس المستخدمة في الإحاطة بين التعبيرات، وقد سبق ذكر المصطلح S-expression الذي يعطي لصيغة ليسب استخدام الرموز.&lt;br /&gt;
&lt;br /&gt;
قائمة ليسب LISP List تكتب بين قوسين بداخلهما تسرد العناصر مفصولة بمسافة بيضاء، مثلا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (1 2 foo)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
هذه قائمة بها عناصر تسمى ذرات Atoms، وهي العددين 1 و2 وfoo، العنصر foo نوع من البيانات في ليسب يدعى «رمز Symbol»، يتم التعرف على نوع العنصر دون الحاجة للإعلان عنه.&lt;br /&gt;
القائمة الخالية () تعتبر ذرة خاصة &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; حيث يمكن اعتبارها ذرة إضافة لكونها قائمة.&lt;br /&gt;
&lt;br /&gt;
قد تدخل القوائم كعناصر داخل قائمة ما، مثلا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; ((1 2 (3 4)))&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
القائمة السابقة مكونة من عددين وقائمة بها عددين.&lt;br /&gt;
&lt;br /&gt;
التعبيرات في ليسب تكتب كقوائم باستخدام صيغة الرموز أولا Prefix Notation، العنصر الأول هو اسم النموذج Form (مثلا: دالة Function، معامل حسابي Operator، ماكرو Macro، أو معامل خاص Special Operator وسيأتي شرحه)، بينما بقية العناصر تعد [[وسائط]] Arguments. على سبيل المثال، الدالة &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt; تعيد وسائطها كقائمة، والتعبير التالي:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (list &amp;#039;1 &amp;#039;2 &amp;#039;foo)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يمثل هذه القائمة (1 2 foo). علامات التنصيص التي تسبق الوسائط تعد إحدى المعاملات الخاصة Special Operators، تمنع علامات التنصيص الوسائط من إجراء الحساب عليها (ليس ذلك ضروريا مع الأعداد طالما أن العدد 1 هو 1 على سبيل المثال)، بينما الوسائط التي تخلو من تلك المعاملات فيتم تنفيذها بشكل دوري Recursively قبل الانتهاء من التعبير، المثال التالي:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (list 1 2 (list 3 4))&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يمثل هذه القائمة (1 2 (3 4))، لاحظ أن الوسيط الثالث هو قائمة، فالقوائم يمكن أن تتداخل كما سبق ذكره.&lt;br /&gt;
&lt;br /&gt;
وبالمثل تعامل المعاملات الحسابية، ففي التعبير التالي:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (+ 1 2 3 4)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سيتم حساب القائمة وإعادة الناتج 10. يمكن توضيح المعادلة نفسها بصيغة «الرموز بالداخل Infix Notation» فتكون &amp;quot;1+2+3+4&amp;quot;. المعاملات الحسابية في ليسب من نوع n-ary أي قابلة لاستقبال أي عدد n من الوسائط.&lt;br /&gt;
&lt;br /&gt;
=== الذرات Atoms ===&lt;br /&gt;
&lt;br /&gt;
في تصميم ليسب الأصلي، كان هناك نوعان أساسيان فقط من أنواع البيانات: الذرات Atoms والقوائم Lists. كانت القائمة سلسلة من العناصر، حيث يعتبر كل عنصر ذرة أو قائمة أخرى متداخلة، والذرة قد تكون عددا Number أو رمزا Symbol، أما الرمز فقد كان عنصرا مميزا مكونا من سلسلة من الأحرف والأرقام، وكان يستخدم كاسم متغير أو عنصر بيانات في معالجة الرموز، على سبيل المثال، القائمة &amp;lt;code&amp;gt;(FOO (BAR 1) 2)&amp;lt;/code&amp;gt; تحتوي على ثلاث عناصر، الرمز FOO، القائمة (BAR 1) والعدد 2.&lt;br /&gt;
&lt;br /&gt;
الفارق الجوهري بين الذرة والقائمة كان في ثبات الذرة وتميزها، بينما كانت القائمة عنصرا منفصلا يمكن لها أن تتغير باستقلال عن القوائم الأخرى ويمكن لها أن تتميز عن القوائم الأخرى بواسطة معاملات المقارنة.&lt;br /&gt;
&lt;br /&gt;
=== الكونسس (الخلايا) والقوائم Conses and Lists ===&lt;br /&gt;
&lt;br /&gt;
القائمة في ليسب تكون فردية الارتباط، كل خلية فيها تدعى كونس أو زوج Pair كما في صيغة سكيم Scheme، وتتكون من مؤشرين، &amp;lt;code&amp;gt;car&amp;lt;/code&amp;gt; و&amp;lt;code&amp;gt;cdr&amp;lt;/code&amp;gt; ويماثلان حقلي data وnext المعروفان في موضوع القوائم المتصلة Linked List.&lt;br /&gt;
&lt;br /&gt;
من بين البنى المتعددة للبيانات التي يمكن إنشاؤها بواسطة الخلايا هناك القائمة التامة Proper List، هذه القائمة قد تكون قائمة خالية (مجازا، تحتوي الرمز الخاص &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;)، أو قد تكون خلية يؤشر الجزء &amp;lt;code&amp;gt;car&amp;lt;/code&amp;gt; إلى وحدة بيانات (وقد تكون بنية أخرى كأن تكون قائمة)، أما الجزء &amp;lt;code&amp;gt;cdr&amp;lt;/code&amp;gt; يؤشر إلى قائمة تامة أخرى.&lt;br /&gt;
&lt;br /&gt;
فيما لو وجدت خلية معطاة بمقدمة قائمة متصلة، فالجزء &amp;lt;code&amp;gt;car&amp;lt;/code&amp;gt; بها يحدد العنصر الأول من القائمة، والجزء &amp;lt;code&amp;gt;cdr&amp;lt;/code&amp;gt; يؤشر إلى باقي القائمة، لهذا فإن دوال &amp;lt;code&amp;gt;car&amp;lt;/code&amp;gt; و&amp;lt;code&amp;gt;cdr&amp;lt;/code&amp;gt; تسمى أيضا &amp;lt;code&amp;gt;first&amp;lt;/code&amp;gt; و&amp;lt;code&amp;gt;rest&amp;lt;/code&amp;gt; عند الحديث عن خلايا في بنية القوائم المتصلة (بدلا من البنى الأخرى كالشجرة tree مثلا).&lt;br /&gt;
إذا القائمة في ليسب لا تعتبر وحدة أساس، كحال أي نسخة Instance من صنف Class في لغة [[جافا (لغة برمجة)|كجافا]] أو [[سي++]]، المتغير الذي يشير إلى قائمة معطاة هو ببساطة مؤشر إلى الخلية الأولى لتلك القائمة.&lt;br /&gt;
&lt;br /&gt;
ولأن استخدام الخلايا والقوائم شائع بكثرة في أنظمة ليسب، فهناك اعتقاد خاطئ شائع بأنها البنية الوحيدة للبيانات في ليسب، لكن بالواقع، هناك بنى أخرى أبسط تكوينا كالمتجهات Vectors (المصفوفات Arrays)، الجداول المتشابكة Hash Tables، البنى Structures وهكذا.&lt;br /&gt;
&lt;br /&gt;
=== تمثيل القوائم المتصلة بالتعابير الرمزية ===&lt;br /&gt;
&lt;br /&gt;
يمكن تمثيل بنية القائمة المتصلة بأقواس التعابير الرمزية بطرق مختلفة، يمكن كتابة الخلية في القائمة المتصلة بطريقة ترميز النقطة-الزوج dotted-pair notation، مثلا: &amp;lt;code&amp;gt;(a. b)&amp;lt;/code&amp;gt;، حيث a هو الجزء &amp;lt;code&amp;gt;car&amp;lt;/code&amp;gt; وb هو الجزء &amp;lt;code&amp;gt;cdr&amp;lt;/code&amp;gt;، يمكن كتابة قائمة تامة طويلة بتلك الطريقة كالتالي:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (a. (b. (c. (d. nil))))&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ويمكن اختصار كتابة القائمة السابقة بطريقة ترميز القائمة List Notation كالتالي:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (a b c d)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يتم كتابة قائمة غير تامة Improper List عند الجمع بين اثنين (مثلا c مع d) لقائمة بها ثلاثة خلايا كالتالي: &amp;lt;code&amp;gt;(a b c. d)&amp;lt;/code&amp;gt; حيث أن العنصر d هو آخر جزء &amp;lt;code&amp;gt;cdr&amp;lt;/code&amp;gt;. القائمة التالية هي الصورة الصحيحة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (a. (b. (c. d)))&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== عمليات المعالجة في القوائم ===&lt;br /&gt;
&lt;br /&gt;
يقدم ليسب إجراءات مبنية داخليا Built-in Procedures للوصول Access والتحكم بالقوائم Controlling List. يمكن إنشاء القوائم مباشرة بالإجراء &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;، الذي يأخذ أي عدد من الوسائط، ويعيدها كعناصر بالقائمة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (list 1 2 &amp;#039;a 3)&lt;br /&gt;
;Output: (1 2 a 3)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مثال آخر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (list 1 &amp;#039;(2 3) 4)&lt;br /&gt;
;Output: (1 (2 3) 4)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ولأن القوائم يمكن أن يتم إنشاؤها بشكل أزواج وخلايا، فالإجراء &amp;lt;code&amp;gt;cons&amp;lt;/code&amp;gt; يمكن أن يدرج عنصرا بمقدمة القائمة، لاحظ أن هذا الإجراء مختلف في تعامله مع [[الوسائط]] بسبب الاختلاف في طرق إنشاء القوائم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (cons 1 &amp;#039;(2 3))&lt;br /&gt;
;Output: (1 2 3)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مثال آخر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (cons &amp;#039;(1 2) &amp;#039;(3 4))&lt;br /&gt;
;Output: ((1 2) 3 4)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
الإجراء &amp;lt;code&amp;gt;append&amp;lt;/code&amp;gt; يلحق اثنين أو أكثر من القوائم إلى قائمة معينة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (append &amp;#039;(1 2) &amp;#039;(3 4))&lt;br /&gt;
;Output: (1 2 3 4)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مثال آخر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (append &amp;#039;(1 2 3) &amp;#039;() &amp;#039;(a) &amp;#039;(5 6))&lt;br /&gt;
;Output: (1 2 3 a 5 6)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== البنية المشتركة ===&lt;br /&gt;
&lt;br /&gt;
بما أن القوائم في ليسب قوائم متصلة بسيطة، فهي تستطيع مشاركة بنية ما مع قوائم أخرى، فيمكن لقائمتين أن تشترك بذيل Tail واحد، أو بآخر سلسلة من الخلايا. مثلا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (setf foo (list &amp;#039;a &amp;#039;b &amp;#039;c)) (setf bar (cons &amp;#039;x (cdr foo)))&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
القائمة foo لها العناصر (a b c) والقائمة bar لها (x b c)، الذيل (b c) يدخل في بنية كلا من القائمتين فهو ليس نسخة مكررة.&lt;br /&gt;
&lt;br /&gt;
يؤدي عمل البنية المشتركة إلى تحسن في الأداء بشكل أفضل من مجرد نسخ العناصر المتكررة، لكن بالمقابل فإن أي تغيير في البنية المشتركة يؤثر على القوائم المبنية عليها، فمثلا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (setf (third foo) &amp;#039;goose)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
عند استبدالنا العنصر c في القائمة foo بالعنصر goose، ستتغير القائمة إلى (a b goose) ولكن القائمة bar ستتغير أيضا إلى (x b goose).&lt;br /&gt;
&lt;br /&gt;
=== التنفيذ التلقائي Self-evaluate وعلامات التنصيص ===&lt;br /&gt;
&lt;br /&gt;
يقوم ليسب بتنفيذ (أو حساب) القوائم التي يدخلها المستخدم إلى صور أخرى، وعادة ما تكون مبسطة، مثلا، القائمة (+ 2 3) تنفذ ويعاد الناتج 5. النماذج الأخرى عادة ما تنفذ وتعيد نفسها، فالعدد 5 يعيد العدد 5.&lt;br /&gt;
&lt;br /&gt;
هناك عبارات يمكن وضعها بعد علامات تنصيص لمنع إجراء عملبات تنفيذ عليها (كما هو ضروري للرموز والقوائم كما ظهر ذلك بالأمثلة السابقة)، وهنا يظهر عمل المعامل الخاص &amp;lt;code&amp;gt;quote&amp;lt;/code&amp;gt; أو اختصاره علامة التنصيص الفردية &amp;lt;code&amp;gt;&amp;#039;&amp;lt;/code&amp;gt;. مثلا، عند إدخال الرمز foo، سيتم تنفيذه وإعطاء القيمة التي يحملها، أو تظهر رسالة خطأ لو لم يحمل أي قيمة، لكن لو أردت الإشارة إلى الرمز حرفيا، فيجب كتابة &amp;lt;code&amp;gt;(quote foo)&amp;lt;/code&amp;gt; أو اختصارا by writing &amp;lt;code&amp;gt; &amp;#039;foo &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== أمثلة ==&lt;br /&gt;
&lt;br /&gt;
البرامج المكتوبة أدناه بصيغة كومون ليسب Common LISP:&lt;br /&gt;
&lt;br /&gt;
برنامج طباعة العبارة Hello world! الشهير:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (print &amp;quot;Hello world&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
صيغ ليسب تتجه بشكل طبيعي إلى التدوير Recursion، ولذلك بعض المسائل الرياضية يمكن التعبير عنها ببساطة كما بالمثال التالي الذي يقوم بحساب [[عاملي|مضروب]] عدد n:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (defun factorial (n)&lt;br /&gt;
   (if (&amp;lt;= n 1)&lt;br /&gt;
       1&lt;br /&gt;
       (* n (factorial (- n 1)))))&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
المثال السابق يمكن استخدام ماكرو الدوار loop بدلا من التدوير&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt; (defun factorial (n)&lt;br /&gt;
   (loop for i from 1 to n&lt;br /&gt;
         for fac = 1 then (* fac i)&lt;br /&gt;
         finally (return fac)))&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== انظر أيضاً ==&lt;br /&gt;
&lt;br /&gt;
* [[نيو ليسب]] مترجم ليسب فوري ومفتوح المصدر.&lt;br /&gt;
* [[يوريسكو]]&lt;br /&gt;
&lt;br /&gt;
== مراجع ==&lt;br /&gt;
&lt;br /&gt;
{{مراجع}}&lt;br /&gt;
&lt;br /&gt;
== وصلات خارجية ==&lt;br /&gt;
&lt;br /&gt;
* [http://www-formal.stanford.edu/jmc/history/lisp/lisp.html History of Lisp] – [[جون مكارثي (عالم)]]&amp;#039;s history of 12 February 1979&lt;br /&gt;
&lt;br /&gt;
{{تصنيف كومنز}}&lt;br /&gt;
{{لغات برمجة}}&lt;br /&gt;
{{لغة برمجة ليسب}}&lt;br /&gt;
{{برمجيات حرة}}&lt;br /&gt;
{{ضبط استنادي}}&lt;br /&gt;
{{شريط بوابات|الولايات المتحدة|برمجة الحاسوب|علم الحاسوب}}&lt;br /&gt;
&lt;br /&gt;
[[تصنيف:ليسب|*]]&lt;br /&gt;
[[تصنيف:اختراعات أمريكية]]&lt;br /&gt;
[[تصنيف:ذكاء اصطناعي]]&lt;br /&gt;
[[تصنيف:لغات برمجة]]&lt;br /&gt;
[[تصنيف:لغات برمجة أنشئت في 1958]]&lt;br /&gt;
[[تصنيف:لغات برمجة ديناميكية النمط]]&lt;br /&gt;
[[تصنيف:لغات برمجة وظيفية]]&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>