سايكوجين | SykoGene
مرحبا زوارنا الكرام, هنا ستجدون مختلف أنواع العلوم التي تعتبر من علوم النخبة والتي لطالما تم إخفائها عبر العصور, من أجل المشاركة ينبغي عليك التسجيل.

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

Lost|pages

حكيم أطلنتس
طاقم الإدارة
المشاركات
1,145
كمية التفاعل
2,894
الجنس
ذكر
البيانات Data
في العديد من لغات البرمجة هناك ما يسمى البيانات والبيانات هي عناصر تستخدم في تمثيل المعلومات. إن الأرقام الصحيحة والكسرية والنصوص والأحرف لكل منها بيان خاص تعرف من خلاله. أول بيان سنتعرف عليه هو integer وهو نوع من البيانات يستخدم للتعريف بالأعداد الصحيحة(ونعني بالأعداد الصحيحة التي تكتب من غير كسور أو فواصل - الموجبة )، أي تكتب على شكل سلاسل من الأرقام مثل:
1234 - 265- 790 - 12 - 443 - 1000

أيضا هناك نوع بيان آخر في ليسب مشترك مع بقية لغات البرمجة ألا وهو String. كلمة string تعني سلاسل وهي تختص في بيان النصوص، أي تكتب على شكل نصوص بداخل الإقتباسات المزدوجة مثل:

" welcome " - " milk and honey" - "what is your name"

ماذا سيحدث لو طبعنا قائمة فارغة ()؟ ماذا ستكون النتيجة؟ إلى المثال التالي:
نلاحظ في المسألة الأولى أنه أعطانا النتيجة Nil أو nil، معنى هذا أن القائمة فارغة وكلمة nil تشير إلى القيمة صفر، كما في لغات البرمجة الأخرى. nil أو صفر يدلان على عدم وجود قيمة. أما باقي الأمثلة فهي طباعة أرقام من دون إجراء عملية حسابية وأيضا قمت بإضافة تعليق وإذا نظرنا إلى مخرجات البرنامج نشاهد أن المترجم قام بإهمال التعليق ولم يطبعه، وفي أخر السطر جملة برمجية لطباعة نص بين علامات إقتباس.

Screenshotfrom2018-02-0403-23-05.jpg




 
التعديل الأخير:
  • لاآيك
الإعجابات: Badr

Lost|pages

حكيم أطلنتس
طاقم الإدارة
المشاركات
1,145
كمية التفاعل
2,894
الجنس
ذكر
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
 
  • لاآيك
الإعجابات: Badr

Lost|pages

حكيم أطلنتس
طاقم الإدارة
المشاركات
1,145
كمية التفاعل
2,894
الجنس
ذكر
dev-office.png


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

8 - إستمر ولا تخف
9 - نظم وقتك فالطريق طويل بحاجة لصبر
10 - حدد هدفك من تعلم هذه اللغة وماتريد منها
 
  • لاآيك
الإعجابات: Badr

Lost|pages

حكيم أطلنتس
طاقم الإدارة
المشاركات
1,145
كمية التفاعل
2,894
الجنس
ذكر
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

 

The Lord

عضو جديد
المشاركات
3
كمية التفاعل
8
الجنس
ذكر
شكرا على شرحك الرائع ولاكن لماذا توقفت ؟
 

Lost|pages

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