استاد : جناب آقای مهندس گودرزی پور ارائه دهنده : طاهره عبدوس سرفصل مطالب 1 مقدمه 2 آشنایی با LISP 3 Atom & List 4 مقداردهی عبارت ها 35 توابع اولیه 6 4 مقادیر منطقی.
Download ReportTranscript استاد : جناب آقای مهندس گودرزی پور ارائه دهنده : طاهره عبدوس سرفصل مطالب 1 مقدمه 2 آشنایی با LISP 3 Atom & List 4 مقداردهی عبارت ها 35 توابع اولیه 6 4 مقادیر منطقی.
روپ یزردوگ سدنهم یاق ا بانج : داتسا سودبع هرهاط : هدنهد هئارا
بلاطم لصفرس
همدقم LISP اب ییانشآ 1 2 Atom & List اه ترابع یهدرادقم هیلوا عباوت 3 5 اه Predicate و یقطنم ریداقم 2
بلاطم لصفرس
یطرش و یلرتنک تاروتسد And & Or عباوت LISP رد عباوت فیرعت Define و Lambda تاروتسد MNS , PLS , Eval عباوت 7 8 4 10 اهدربراک و اهورکام 3
همدقم
یمیدق زا و تسا هدم ا دوجوب
MIT
رد
John McCarthy
طسوت 50 ههد رخاوا رد
LISP
نابز .
دوش یم بوسحم یسیون همانرب یاهنابز نیرت
( symbolic computation) یدامن تابساحم
ن ا یحارط هدمع فده .
دشاب یم ن ا یریذپ فاطعنا و دایز یتخاونکی ن ا زراب یگژیو
Symbolic
ءازجا نیا هب .
دشاب یم اه هداد عاونا رد )
Type
( عون ندوب ناسکی
LISP
رگید یگژیو نیا زا تاروتسد و تاعلاطا زا معا اه هداد یمامت .
دنیوگ یم )
S-Expression
(
Expression
.
دنتسه عون
4
LISP
اب ی یانش ا
هب هک تسا
Lisp
زا عون هی دوش یم ففخم
CL
تروص هب الومعم هک
Common Lisp
بعشنم یاه هخسن ندرک درادناتسا یارب و هدش درادناتسا
ANSI *30266 – 1994
ی هلیسو .
تسا هتفای شرتسگ دنتسه اراد ار ن ا زا ی یاه شخب هک
Lisp
ی هدش : هک تسا یا هنومن دنچ یسیون همانرب نابز هی
Common Lisp
ی م ینابیت شپ ار یع با ت ار گ ی ش ی سیون ه مانرب نا بز ی سیون ه مانرب د ننام ی سیون ه مانرب یا ه ه ینکت .
دنک
.1
.
تسا اهورکام دننام درادناتسا یاه هصیصخ نیب رد شرتسگ لباق
.2
Atom & List )
Atom
( متا
.
1
: تسا تروص
2
هب
S-Expression
)
List
( تسیل
.
2
ریز رد .
د شاب ددع ای دامن هی دناوت یم و دوش یمن میسقت یرت کچوک یازجا هب هک تسا یراد ینعم ءزج
متا
: دینک یم هدهاشم ار اهمتا زا ی یاه هنومن
Atom & List
متا هی دنناوت یم مه تسیل هی یاضعا ینعی دنتسه اه
Expression
زا یا هلابند
تسیل
: دینک یم هدهاشم ار اهتسیل زا ی یاه هنومن ریز رد .
رگید تسیل هی مه دنشاب
!!!
تسیل مه متا مه ، ) یلاخ تسیل ( Nil
LISP
یاه همانرب
.
دنشاب یم
S-Expression
تروصب پسیل یاه همانرب میتف گ هک روطنامه : مینک یم عورش لاثم هی اب .
دشاب یم ) یوضع هس تسیل ( تسیل عون زا و تسا
S-Expression
هی ترابع نیا .
دشاب یم 3 ددع تسیل شزادرپ لصاح و دشاب یم 1 + 2 نامه ترابع نیا یانعم .
دنشاب یم
Prefix
تروصب تارابع پسیل رد : د ینیبب ؛دنک یم لامعا دنولمع ود یور ار
+
رگلمع میهدب پسیل
Interpreter
هب ار قوف تارابع رگا
LISP
یاه همانرب
: مینک یم هبساحم ار
(7+3) * (7-3)
ترابع لاح .
دوش یم هبساحم ترابع و میهد یم
Interpreter
هب ترابع هی هشیمه یم پ سیل هک یراک اهنت دوش یم هداد پسیل هب همانرب هی ناونع هب
S-Expression
هی هک یتقو .
تسا ن ا
رادقم هبساحم
دنک
اهترابع یبای رادقم
: دنوش یم
یبای رادقم
ریز نوناق قبط پسیل رد اهترابع : دشاب
متا
هی
S-Expression
رگا .1
.
تسا شدوخ یبای رادقم لصاح دشاب ددع هی ترابع رگا • .
تسا ن ا هب بستنم رادقم یبای رادقم لصاح دشاب
Symbol
هی ترابع رگا • : دشاب
تسیل
هی
S-Expression
رگا ی م )
Apply
( لا معا ءا ضعا ه یقب یور ار ن ا و در یگ ی م آبا ت ه ی ناو نع ه ب ار ن ا و ضع نی لوا .
دنک یم یبای رادقم ار تسیل یاضعا رگید راک نیا زا لبق هتبلا دنک • .2
اهترابع یبای رادقم
.
تسا )
Recursive
( یتشگزاب لمع هی یبای رادقم لمع همانرب یاهنابز رگید رد
F(x,y,z)
لداعم میهدب ار
(F x y z)
ترابع
Interpreter
هب رگا .
دشاب یم یسیون .
دوش یم لامعا 1 و 2 و 3 یور رب
+
رگلمع
( + 3 2 1)
ترابع رد .
تسا هدش هداد باستنا آبات هی ن ا هب هک تسا
Symbol
هی
+
LISP
یاه همانرب
.
تسا شدوخ ربارب لصاح و تسا ددع هی هک میراد
Atom
هی ریز همانرب رد
+
لامعا زا لبق .
دنادرگ یم زاب لصاح ناونع هب ار 10 ددع و هدش لامعا دوخ یاهناموگر ا یور
+
آبات ریز همانرب رد ؟تسا ردقچ
a
رادقم .
دنوش یم یبای رادقم ن ا یاهناموگر ا ن ینچ هکنیا ببس هب و دنک لامعا رگید ناموگر ا هس یور ار
1
آبات دنک یم یعس
Interpreter
ریز همانرب رد .
دهد یم اطخ ماغیپ درادن دوجو یعبات
LISP
یاه همانرب
رادقم سپس و
( * 1 2)
لصاح لوا سپ .
دنوش یبای رادقم ن ا یاهناموگر ا
*
دیاب آبات لامعا زا لبق ریز همانرب رد یم لامعا 1 و 5 و 3 یاهناموگر ا یور
*
مه رخ ا رد .
دنوش یم یبای رادقم ) تسا شدوخ ربارب هک (
5
مه و
(- 3 4)
.
دوش هک میراد Print ما ن هب یعبات لاثم .
دنک راک رگید عون زا ی یاهناموگر ا اب یددع یاهناموگر ا یاج هب یعبات دینک ضرف ؟د تفا یم یقافتا هچ مینک هدافتسا ریز تروصب ار ن ا رگا .
دنک یم پاچ ار ن ا و دریگیم ار
Symbol
هی
LISP
یاه همانرب
یور
آبات سپ .
دوش یبایرادقم دیاب
Salam
دوش ارجا شناموگر ا یور
آبات هکن ا زا لبق اب دشابن ربتعم
Salam
رادقم رگا لاح .
Salam
دوخ هن دوش یم لامعا
Salam
یور بستنم رادقم .
میوش یم هجاوم اطخ مایپ ناونع
: لح هار
هب ار
P
دعب و میهد باستنا
P
لثم رگید دامن هب ار
Salam
دامن یوحن هب : میهدب
هب ناموگر ا
LISP
یاه همانرب
یم رب ار ن ا لوط و دریگ یم ناموگر ا ناونع هب ار تسیل هی هک میا هتخاس
Length
مان هب یعبات دینک ضرف ؟دش دهاوخ هچ هجیتن امش رظن هب ؛مینک ناحتما
( 1 2 3 4 )
تسیل یور ار ن ا دییایب .
دنادرگ یور ار 1 دنک یم یعس
Lisp
.
دوش یبای رادقم دیاب تسیل دوش ارجا
( 1 2 3 4 )
یور آبات هکن ا زا لبق .
میوش یم هجاوم
اطخ
اب میرادن یعبات نینچ نوچ و دنک لامعا 4 و 3 و 2
: لح هار
رب ار دوخ یاهناموگر ا زا یتسیل رادقم ناونع هب و دریگب ناموگر ا یدادعت هک میشاب هتشاد یعبات .
دنادرگ
LISP
یاه همانرب
: درب راک هب ناوت یم ریز تروص هب ار
Length
آبات هاگن ا یور یم ماجنا
: رت هداس لح هار
آبات لامعا زا لبق
Lisp
هک مینک یراک میتسناوت یم قوف لاثم ود ره رد رگا .
میدش یمن هجاوم
اطخ
اب هاگن ا دنکن یبایرادقم ار ن ا شیاهناموگر ا ترابع یادتبا رد
(Single quote) ‘
هی نداد رارق اب
Lisp
رد راک نیا .
دنکن یبایرادقم ار ن ا دیوگ یم
Interpreter
هب و دوش
LISP
یاه همانرب
: لاثم
‘
تملاع مود لاثم رد یلو .
دوش یم 3 ربارب ترابع لک لصاح و تسا هدش هبساحم
( + 1 2 )
لوا لاثم رد : دنبای ریی غت ریز تروص هب دیاب یلبق لاثم ود سپ .
دوش یم هدنادرگزاب تسیل دوخ و دوش یم یبایرادقم آنام
هیلوا آباوت
یور رب راک تیمها هب ناوت یم اجنیمه زا و هدش هتفرگ
Lis t P rocessing
یدیلک تاملک زا
Lisp
مان یم انش ا اهن ا زا یخر ب اب ریز رد هک دراد دوجو اه هتشر یور رب راک یارب هیلوا آباوت یدادعت پسیل رد .
درب ی پ اه تسیل : میوش
CAR
: دنادرگ یم رب ار ن ا وضع نیلوا و دریگ یم تسیل زا ناموگر ا هی آبات نیا
هیلوا آباوت
CDR
.
دنادرگ ی م زاب تسیل
دعب هب مود یاضعا
لماش تسیل هی و دریگ یم تسیل عون زا ناموگر ا هی آبات نیا یا ه هخسنرد تسا نکمم و دنشاب یم پسیل هیلوا راتخاس هب طوبرم
CDR
و
CAR
یاهمان هک دینک هجوت .
دنشاب هدش
TAIL
و
HEAD
ای و
REST
و
FIRST
دیدج
هیلوا آباوت
CONS
ه ک دنادرگ یم زاب تسیل هی و دریگ یم ناموگر ا ناونع هب ار
List
هی و
S-Expression
هی آبات نیا .
تسا تسیل یاضعا نامه ن ا یاضعا
هیقب
و
S-Expression
نامه ن ا
لوا
وضع
LISP
یاه همانرب
: دینک هجوت ریز یاهلاثم هب لوا دیاب سپ هدشن هتشاذگ مه
Quote
ن ا ولج و تسا
Symbol
هی
Nil
نوچ رخ ا لاثم رد
شا ی یلااب لاثم اب ن ا رادقم یلو
دوش لامعا بستنم رادقم یور
CONS
آبات و دوش هبساحم ن ا رادقم
!!!
تسا یکی تسا Nil دامن دوخ Nil دامن هب بستنم رادقم پسیل رد
LISP
یاه همانرب
اه دروکر و اه هداد .
دشاب یم یدنویپ یاهتسیل ساسارب
Lisp
یزاس هدایپ هک تف گ ناوت یم یلک روط هب .
درک یرادهگن ریز تروصب ناوت یم
Lisp
رد ار : دنا هدش هریخذ تسیل هی رد دروکر یدادعت ریز لاثم رد : ربارب مود دروکر یگداوناخ مان دوش بستنم
L
مان هب
Symbol
هی هب تسیل رگا : دراد دوجو قوف ترابع نتشون یارب زین یرت هداس هار
( CA R (C D R
مرف هب ریسفت زا لبق
Macro
هی دننامه دینک یم هدهاشم لاب رد هک یراتخاس .
دی ا یم رد
(C D R (C A R (C DR L )))))
اه
Predicate
و یقطنم ریداقم
.
دشاب یم تسردان ریداقم نایب تهج
Nil
رگید یاهدربراک زا رگید یکی .
میرادن یزاین
Quote
هب تارابع رد و دشاب یم
Nil
دوخ
Nil
هب بستنم رادقم .
میرب یم هرهب
T
دامن زا
Lisp
رد تسرد رادقم نداد ناشن یارب هی هک دشاب یم
Lisp
هیاپ آباوت ءزج آبات نیا ؛دیریگب رظن رد ار ریز
List
رد
ATOM
آبات لاثم یارب .
دنادرگ یم زاب ن ا ندوب متا تهج یقطنم یرادقم و دریگ یم ناموگر ا
اه
Predicate
و یقطنم ریداقم
.
مییوگ
Predicate
تسا یقطنم رادقم هی اهن ا زا یتشگرب رادقم هک یعباوت هب
EQ
!
ری خ ای دنا هظفاح هناخ هی هب طوبرم ناموگر ا ود نیا ای ا هک دیوگ یم و دریگ یم ناموگر ا ود آبات نیا رد ار اه
Symbol
نیا پسیل ؛دنریگ یم رارق هظفاح سرد ا هی رد دنشاب یواسم
Symbol
ود رگا لمع ی واست یسررب آبات دننامه اه متا دروم رد آبات نیا .
دنک یم یرادهگن
Atom Table
مان هب ی یاج : دینیبب دنک یم
یلرتنک تاروتسد
: هک میدرک یسررب لابق دریذپ یم تروص
تارابع هبساحم
هلیسوب
Lisp
رد یلرتنک نایرج تسا شدوخ یاهناموگر ا یور آبات ره یارجا و آباوت راضحا تروصب پسیل رد هبساحم یم مه زاب م یشاب هتشادن مه هقلح و یطرش تاروتسد رگا هک مینیب یم و مینک یم عورش
C
نابز زا لاثم هی اب : مییامن یزاس هدایپ میناوت
یطرش تاروتسد
یدایز دادعت لماش آبات نیا یاهناموگر ا .
دوش یم ماجنا
COND
آبات هلیسوب پسیل رد یطرش تایلمع : تسا یوضع ود تسیل هی تسی ل ره مود وضع .
دشاب طلغ ای تسرد دناوت یم هک تسا یقطنم تسیل هی ترابع ره لوا وضع .
دوش هدنادرگزاب
COND
آبات لک ناونع هب تسا نکمم ن ا لصاح هک تسا ترابع ناونع هب را مود وضع دوب حیحص لوا وضع رگا .
دنک یم ناحتما بیترت هب ار ی یاتود یاهتسیل
Lisp
.
دور یم یدعب وضع غارس هب هنرگو دنادرگ یم زاب باوج .
دنک یمن یبای رادقم و هبساحم ار دوخ یاهناموگر ا ندش ارجا زا لبق
COND
آبات
یطرش تاروتسد
: دشاب
X C
هب بستنم رادقم دینک ضرف ریز لاثم رد آبات یناخارف لصاح ناونع هب
cc’
رادقم تسا هدوب حیحص
(eq x ‘c)
ترابع نوچ قوف لاثم رد .
تسا هدش هدنادرگرب
COND
؟ارچ
؛دنسیون یم زین
(T exp)
تروص هب ار رخ ا روتسد
COND
آبات رد
Lisp
یاه همانرب رث کارد
OR
و
AND
آباوت
.
دننادرگ یم رب ار اهن ا
OR
ای
AND
و دنریگ یم ناموگر ا یهاوخلد دادعت آباوت نیا لثم ( دننک یمن یبای رادقم ار دوخ یاهناموگر ا یمامت ادتبا هک تسا نیا رد یلومعم آباوت اب اهن ا توافت ای
AND
لصاح هک ی یاج ات دننک یم هبساحم پچ هب تسار زا بیترت هب ار اهن ا هکلب )
COND
.
دننک یمن هبساحم ار یدعب یاه ناموگر ا رگید ن ا زا دعب و دوش مولعم
OR
LISP
رد آباوت فیرعت
هب لقادح نوچ تشون ناوت یمن مه هداس یاه همانرب یتح میتخوم ا پسیل دروم رد نونک ات هک یبلاطم اب .
میراد زاین هقلح و باستنا تاروتسد ؟مییامن یزاس هدایپ پسیل رد ار
)
رارکت
(
Iteration
میناوت یم هنوگچ .
دوش یم هتخاس آباوت فیرعت اب پسیل همانرب هی .
دوش یم هدافتسا
Recursion
زا دشاب زاین رارکت هب همانرب رد رگا و درادن دوجو هقلح پسیل رد .
دومن فیر عت زین دیدج آباوت آبات هی نورد یتح و تشون ار تاروتسد زا یا هلابند ناوت یم آبات هی رد
)
(
Lambda
روتسد
و دریگ یم ار ددع ود هک میراد یعبات دینک ضرف لاثم یارب .
دنادرگ یم رب ار آبات هی رادقم ناونع هب روتسد نیا : دنادرگ یم زاب ار اهن ا عومجم آبات یت شگزاب رادقم مه یدعب ناموگر ا و تسا رظن دروم آبات یاهناموگر ا زا یتسیل
Lambda
مود ناموگر ا .
دهد یم ناشن اهناموگر ا هب هجوت اب ار !!!
تسا آبات هی ن ا لصاح هکلب تسین آبات فیرعت
Lambda
هب 5 و هدش لامعا 3 و 2 یاهناموگر ا یور
((Lambda (x y) (+ x y) 2 3)
آبات لاثم نیا رد .
دوش یم هدنادرگرب تارابع لک لصاح ناونع
Define
روتسد
هک تسا یفاک را ک نیا یارب .
مینک هدافتسا ن ا زا تاعفد هب و مینک فیرعت راب هی ار آبات میهاوخ یم ام هشیمه
Define
زا راک نیا یارب .
میهد یم باستنا
Symbol
هی هب ار )
Lambda
لصاح ( آبات هی : مینک یم هدافتسا
!!!
دوشن شومارف
تسا مهم رایسب
Define
ناموگر ا زا لبق
Quote
تملاع .
درک فیرعت آبات دنچ ناوت یم
Define
هلیسوب
MNS
و
PLS
آباوت
: دننادرگ یم رب ار ددع ود لضافت و عومجم بیترت هب
MNS
و
PLS
آبات ود ی یاهناموگر ا هب ت قیقح رد دنوش یم هداد آبات هب ناموگر ا ناونع هب هک ی یاهرادقم مینز یم ادص ار آبات هی یتقو .
دوش یم بستنم دنراد دوجو آبات فیرعت رد هک
LISP
رد آباوت فیرعت
(Defun(Define
دینک هدافتسا دیناوت یم اه هخسن رث کا رد هک آباوت فیرعت یارب رگید روتسد هی : دوش یم هدافتسا ریز تروص هب هک تسا
Function))
: دنک باسح ار ددع ود آمج هک مینک یم فیرعت ار یعبات لاثم یارب .
مینک یزاس هدایپ پسیل رد ار آباوت رث کا میناوت یم میدرو ا تسدب پسیل هرابرد نونکا هک یتاعلاطا اب
LISP
یاه همانرب
: دنادرگرب ار
n !
و دریگب ار
n
ددع هک دیسیونب یا همانرب ار
( n *Fact( n -1))
رادقم تروص نیا ریغ رد دنادرگ یم زاب ار 1 رادقم دوب
n <2
رگا قوف همانرب رد .
دنادرگ یم رب .
دنز یم ادص ار شدوخ
Fact
آبات دینک یم هدهاشم هک روطنامه
LISP
یاه همانرب
IF
: دنک یم تحار ار راک و دراد دوجو پسیل دیدج یاه هخسن رث کا رد آبات نیا نیا ریغ رد دنک یم یبایرادقم ار
دوب تسرد رگا .
دنک یم هبساحم ار
روتسد نیا یبایرادقم ار دوخ یاهناموگر ا همه
COND
لثم مه
IF
هک دینک هجوت .
دنادرگ یم زاب ار
تروص .
دنک یمن : میسیون یم
IF
اب ار
Fact
آبات لاح
LISP
یاه همانرب
: دنادرگزاب ار ن ا لوط و دریگب ناموگر ا ناونع هب ار تسیل هی هک دیسیونب یا همانرب میرب یم هرهب تشگزاب زا سپ دنتسه
CDR
و
CAR
میتسه دلب هک یتاروتسد اهنت : مینک یم همانرب هب لیدبت ار هطبار نیا لاح • .
تسا یلاخ تسیل لداعم
Nil
متا هک دینک هجوت
LISP
یاه همانرب
جراخ
L
هدودحم زا
N
رگا .
دنادرگرب ار
L
وضع نیما
N
و دریگب ار
N
ددع و
L
تسیل هک دیسیونب یا همانرب : دنادرگزاب ار
Nil
رادقم تسا تسا
CDR(N-1)
وضع نیما
N-1
نامه
L
وضع نیما
N
: ی یامنهار
Eval
آبات
هس تسیل هی
(+ 2 1)
لکش هب یا هداد لاثم .
دشاب همانرب هی دناوت یم شدوخ پسیل رد هداد هی .
دوش هتفرگ رظن رد مه همانرب هی تروصب دناوت یم هک تسا یوضع لثم .
دنک ارجا ات میهدب پسیل
Interpreter
هب ار اهن ا میهاوخ یم و میراد ی یاه هداد دینک ضرف لاح ناموگر ا آبات نیا .
دریذپ یم ماجنا
Eval
آبات اب راک نیا .
میشاب هتشون
Lisp
نامرف طخ رد ار اهن ا هکنیا : دنک یم یبای رادقم و هبساحم ار دوخ تسا
‘
راک سکع رب
Eval
راک تف گ ناوت یم
اهورکام
یلصا دک لک ش رییغت هی ی هدنیامن و تسا هدافتسا لاح رد آبات هی هیبش یحطس روط هب
Lisp
رد ورکام هی .
دشاب یم زین همانرب .
دهد یم ار نابز رد دیدج یوحن یاه مرف داجیا ناکما
Lisp
ناسیون همانرب هب اهورکام .
دنوش یم راضحا دنک دیلوت ار ی یاهن یلصا دک رلیاپماک هکنیا زا لبق آباوت نیا .
دننک هدافتسا دنناوت یم ار
CL
رگلمع ره اهورکام
اهدربراک
بسانم یم راک یسیون هب ت سا همانرب نابز
یعونصم
هی
شوه
اب
Common Lisp
طابترا رد هک هژیو یدربراک درادناتسا یاه طیحم ی ای هتیمک زا و هاگشناد گرزب رد تاراظتنا بلغا هک دوجو دنام اب یقاب .
دور یناگرزاب ن ابز هب تیاس یقفوم یانش زاب ا آبنم لاثم دک ناش بولطم یاهدربراک نابز نمضرد یفرعم .
تسا یارب هتفای
Common Lisp
ناربراک شرتسگ
CL
اب : لثم دراد دوجو هک دننز یم ار زا یرایسب
yahoo Common Lisp
.
دهد یم ار " شوه " یعیبط یرازفا شور مرن .
یاه هربخ یرتویپماک فیصوت هدنیامن هزاجا هیرظن یربج یقیسوم نتخاس یارب هدننک متسیس نوناق تباث هی یاهراتخاس دیلوت هب
: :
هی متسیس
: :
acl2 Maxima Compo Lisa
اهدربراک
.
دش یحارط تسیل شزادرپ یعبات نابز هی ناونع هب .
تسا بسانم رایسب وجتسج یاهراک یارب .
دنوش یم یزاس هدایپ یبوخ هب ن ا رد یرتویپماک یاهیزاب .
دوش یم ماجنا یبوخ هب ن ا رد نتم شزادرپ هنیمز دوش نی زگیاج یرگید یاه هتشر طسوت دناوت یم اهدامن زا ی یاه هتشر ن ا رد هک راکدوخ نیشام ریسفت .
دشاب یم رازفا مرن نیا دربراک زا یرگید
آبانم
goldsmith.ir
–
رگرز یلع
– lisp
شزوم ا
Paul Graham.1996. ANSI Common Lisp Programming Languages Structures (Organick, Forsythe, Plummer) Academic Press 1978 Artificial Intelligence (Luger) 2002
42