هناك عدد محدود للقراءات المسموح بها للزوار

[2] هو عدد القراءات المتبقية

الذكاء الصناعي & لغة Lisp

List Operations
عمليات القائمة
اليوم سنتعلم بعض الوظائف التي تختص في بناء القوائم وأول هذه الوظائف هي الدالة cons، تقوم هذه الوظيفة بمهمة بناء القوائم. أي تأخذ العناصر وتضعها في قائمة جديدة. في المثال نرى أن الدالة cons قامت بضم الحرف a مع القائمة b c d وكانت نتيجة ذلك هي قائمة تحتوي على أربعة أحرف معا. نلاحظ أيضا وجود الإقتباس الأحادي ومهمته جعل العنصر يقيم ذاته ويرجع كما هو لذلك ستقوم الدالة cons ببناء قائمة جديدة ومنها سوف يقوم الأقتباس الاحادي بإرجاع القيم هي في قائمة موحدة.
Screenshotfrom2018-02-0500-34-01.jpg

الوظيفة car و cdr و list
مهمة الوظيفة car هي طباعة أول عنصر من القائمة، أما cdr فهي تطبع كل العناصر ما عدا العنصر الأول. الدالة list تقوم بوضع العناصر في قائمة. لو تلاحظون في الأمثلة أننا قمنا ببناء قوائم أما في list أضفنا أحرف من دون قوسين لأن ذلك سيكون مهمة list في إدراجهم داخل الأقواس.
مثال:

Screenshotfrom2018-02-0500-38-51.jpg


مثال أخر :
في هذا المثال كما أشرنا سابقا وقلنا أن التنفيذ سيكون للقوائم الداخلية والتي تليها إلى أن يصل إلى الوظيفة print. عند تنفيذ cdr الداخلية حيث قلنا أن الوظيفة cdr تطبع العناصر كلها بإستثناء العنصر الأول، إذا ستكون العناصر كالتالي: b c d ومن ثم تنتقل العناصر إلى cdr الثانية وتصبح c d وبعد ذلك إلى الدالة car والتي بدورها ستختار أول عنصر وهو c وبذلك سيكون الناتج الحرف c.

Screenshotfrom2018-02-0500-53-43.jpg

المعاملات first second third fourth
هذه مهمتها طباعة العنصر حسب ترتيبه في القائمة. مثال

Screenshotfrom2018-02-0501-01-24.jpg
 
  • لايك
التفاعلات: Ile
dev-office.png


نصائح للدراسة
1 - شرب الماء كثيرا
2 - الهمة والإرادة في التحصيل العلمي
3 - خصص نصف ساعة للدراسة يوميا
4 - دون الملاحظات في دفتر الملاحظات
5 - كتابة الأسطر البرمجية وحل التمارين
6 - إذا شعرت بتعب توقف فورا
7 - حاول أن تكتب على ورقة بشكل تقليدي
فهذا يساعد أكثر قبل الإنتقال إلى الحاسوب

8 - إستمر ولا تخف
9 - نظم وقتك فالطريق طويل بحاجة لصبر
10 - حدد هدفك من تعلم هذه اللغة وماتريد منها
 
  • لايك
التفاعلات: Ile
Truth
الحقيقه
في لغة ليسب، يرمز الحرف t إلى الحقيقة Truth. و الوظيفة listp تعمل على إعادة لنا النتيجة true صحيح إذا كانت العناصر عبارة عن قائمة. أما إذا كانت العناصر ليست في قائمة فستعيد لنا nil أي غير صحيح. إن الوظائف في ليسب والتي ترجع القيم إما صحيح أو غير صحيح تمسى مسند predicate. المسندات دائما ما تنتهي بالحرف p.

مثال:
1- هنا الوظيفة listp ستقوم بالتحقق من أن العناصر في قائمة وستعيد لنا النتيجة T أي صحيح true.
3 - أما هنا فستكون النتيجة غير صحيحة nil لأن الحرف a ليس قائمة.

Screenshotfrom2018-02-0504-32-10.jpg

مثال آخر على الأرقام:
في هذا المثال رقم 1 و 2 كانت النتيجة nil أي أن الوظيفة listp أرجعت لنا خطاأ أو غير صحيح لأن الأرقام ليست قوائم. أما في رقم 4 فكانت النتيجة T أي صحيح، لأن الوظيفة listp أرجعت لنا true والسبب أن الأرقام عبارة عن قائمة وليست أعداد منفصلة.

Screenshotfrom2018-02-0504-46-54.jpg

الوظيفة null:
إن الوظيفة null ترجع لنا القيمة صحيح true - t إن كانت القائمة فارغة و غير صحيح nil إن كانت العناصر عبارة عن قائمة.
مثال:

Screenshotfrom2018-02-0505-01-07.jpg

الدالة not:
تعمل نفس عمل null، إن كانت العناصر فارغة أو غير صحيح ترجع لنا القيمة true - t. أما إن كانت العناصر عبارة عن أرقام أو قوائم أو أحرف فسترجع لنا النتيجة NIL.
مثال:

Screenshotfrom2018-02-0505-10-10.jpg

 
شكرا على شرحك الرائع ولاكن لماذا توقفت ؟
انشغلت بقراءة الكتب وأمور أخرى
واحتاج لارتب أفكاري من جديد
كي أضع دروس جديده.
 

أداب الحوار

المرجو التحلي بأداب الحوار وعدم الإنجرار خلف المشاحنات، بحال مضايقة إستخدم زر الإبلاغ وسنتخذ الإجراء المناسب، يمكنك الإطلاع على [ قوانين وسياسة الموقع ] و [ ماهو سايكوجين ]

الأعضاء الذين قرؤوا هذا الموضوع [ 6 ]

أعلى