milad zarei (8453306) ?2953lisp اب ییانشآ اشیگ ییض ییسی هب شث ىبثص یسی...

40
Milad Zarei (8453306) http://www.irexpert.ir?2953

Upload: others

Post on 27-Jan-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

  • Milad Zarei (8453306)

    http://www.irexpert.ir?2953

  • LISP با آشنایی

    صثبى LISP سَسظ 50 دِّ اٍاخش دس John McCarthy دس MIT اسز آهذُ ثَجَد .ضَد هی هحسَة ًَیسی ثشًبهِ صثبًْبی سشیي لذیوی اص ٍ

    نمادی محاسبات آى عشاحی ػوذُ ّذف (symbolic computation)ثبضذ هی آى دزیشی اًؼغبف ٍ صیبد یکٌَاخشی آى ثبسص ٍیژگی.

    ثبسص ٍیژگی اٍلیي LISP ًَع ثَدى یکسبى (Type) ایي ثِ .ثبضذ هی ّب دادُ اًَاع دس Symbolic اجضاء Expression (S-Expression) ّب دادُ سوبهی .گَیٌذ هی

    .ّسشٌذ ًَع ایي اص دسشَسار ٍ اعالػبر اص اػن

  • LISP با آشنایی

    سکٌیک ّبی ثشًبهِ ًَیسی هبًٌذ ثشًبهِ ًَیسی صثبى ثشًبهِ ًَیسیی ضیی گیشا 1.. سبثؼی سا دطشیجبًی هی کٌذ

    . لبثل گسششش دس ثیي خصیصِ ّبی اسشبًذاسد هبًٌذ هبکشٍّب اسز2.

    Common Lisp ِصَسر ثِ هؼوَالً کCLاص ًَع یک ضَد هی هخفف Lisp ANSI ی ٍسیلِ ثِ کِ اسز *30266 – اسشبًذاسد ثشای ٍ ضذُ اسشبًذاسد 1994

    گسششش ّسشٌذ داسا سا آى اص ّبیی ثخص کLispِ ی ضذُ هٌطؼت ّبی ًسخِ کشدى.اسز یبفشِ

    Common Lispکِ اسز ای ًوًَِ چٌذ ًَیسی ثشًبهِ صثبى یک:

  • LISP با آشنایی

    سؼشیف کٌیین کیِ خیَد آى Programاص ًَع Structureیک هشغیش یب Cفشض کٌیذ دس صثبى ّن ثِ آى اضبفِ کٌین ٍ ثؼیذ ثیب If ٍForدس ّویي حبلز چٌذ دسشَس . ثبضذ Cهشغیش یک ثشًبهِ

    اگیش ثشًبهیِ ای ثبضیذ کیِ اییي . ثبضیذ Runtimeیک سبثغ آى سا اجشا کٌین ٍ ّوِ اجشا دس صهبى

    .خَاّذ ثَد لیسپٍیژگی سا داضشِ ثبضذ هغوئٌب

    S-Expression؟

    (Atom) اتم .1:اسز صَسر 2 ثِ

    (List)لیست .2

  • Atom & List

    یک سَاًذ هی ٍ ضَد ًوی سمسین کَچکششی اجضای ثِ کِ اسز داسی هؼٌی جضء اتم :کٌیذ هی هطبّذُ سا اسوْب اص ّبیی ًوًَِ صیش دس .ثبضذ ػذد یب ًوبد

    اص ای دًجبلِ لیست Expressionسَاًٌذ هی ّن لیسز یک اػضبی یؼٌی ّسشٌذ ّب :کٌیذ هی هطبّذُ سا لیسشْب اص ّبیی ًوًَِ صیش دس .دیگش لیسز یک ّن ثبضشذ اسن یک

    Nil (هم اتم هم لیست(لیست خالی ،!!!

  • LISPهای برنامه

    ثصَسر لیسخ ّبی ثشًبهِ گفشین کِ ّوبًغَس S-Expression ثبضٌذ هی.

    کٌین هی ضشٍع هثبل یک ثب:

    یک ػجبسر ایي S-Expression ثبضذ هی (ػضَی سِ لیسز) لیسز ًَع اص ٍ اسز.

    ثبضذ هی 3 ػذد لیسز دشداصش حبصل ٍ ثبضذ هی 1+2 ّوبى ػجبسر ایي هؼٌبی.

    ثصَسر ػجبسار لیسخ دس Prefix ثبضٌذ هی.

    ثِ سا فَق ػجبسار اگش Interpreter اػوبل ػولًَذ دٍ سٍی سا + ػولگش ثذّین لیسخ :ثجیٌیذ کٌذ؛ هی

  • LISPهای برنامه

    7+3) ػجبسر حبل) :کٌین هی هحبسجِ سا (7-3)*

    ِثِ ػجبسر یک ّویط Interpreter ضَد هی هحبسجِ ػجبسر ٍ دّین هی.

    صثبى ٍیژگی یک C ثِ ًسجز Pascal ٍ آًْب دس اًشسبة کِ اسز ایي ّب ثشًبهِ دیگش :هثال .(Statement)دسشَس یک ًِ اسز (Expression) ػجبسر یک

    If For Switch سبخشبسّبی کٌیذ فشض حبل .اسز اًشسبة یک ضبهل C دسWhile ٍ هبًٌذ دزیش اًؼغبف صثبًی آًَلز ثَدًذ؛ هی ػجبسر یک ّن سَاثغ سؼشیف

    .ضذ هی حبصل لیسپ

  • عبارتها یابی مقداریک کِ ٍلشی S-Expression ِلیسخ کِ کبسی سٌْب ضَد هی دادُ لیسخ ثِ ثشًبهِ یک ػٌَاى ث

    .اسز آى مقدار محاسبه کٌذ هی

    ضًَذ هی یابی مقدار صیش لبًَى عجك لیسخ دس ػجبسسْب:

    :ثبضذ اتم یک S-Expressionاگش 1.اگش ػجبسر یک ػذد ثبضذ حبصل همذاس یبثی خَدش اسز. اگش ػجبسر یکSymbol حبصل همذاس یبثی همذاس هٌشست ثِ آى اسز .

    هی سَاًذ یک همیذاس هٌشسیت ضیَد ٍ هیی سَاًیذ ییک ػیذد Symbolدس لیسخ ثِ ّش Symbol دیگش یک لیسز یب حشی یک سبثغ ثبضذ

    :ثبضذ لیستیک S-Expressionاگش2. اٍلیي ػضَ آى سا ثِ ػٌَاى یک سبثغ هی گیشد ٍ آى سا سٍی ثمییِ اػضیبء اػویبل(Apply )

    .هی کٌذ الجشِ لجل اص ایي کبس دیگش اػضبی لیسز سا همذاس یبثی هی کٌذ

  • عبارتها یابی مقدار

    ثبصگطشی ػول یک یبثی همذاس ػول (Recursive) اسز.

    ثِ اگش Interpreter ػجبسر (F x y z) هؼبدل ثذّین سا F(x,y,z) دیگش دس .ثبضذ هی ًَیسی ثشًبهِ صثبًْبی

    ػجبسر دس (+ 3 2 .ضَد هی اػوبل 1 2ٍ 3ٍ سٍی ثش + ػولگش (1

    + یک Symbol اسز ضذُ دادُ اًشسبة سبثغ یک آى ثِ کِ اسز.

  • LISPهای برنامه

    یک صیش ثشًبهِ دس Atom اسز خَدش ثشاثش حبصل ٍ اسز ػذد یک کِ داسین.

    ثبص حبصل ػٌَاى ثِ سا 10 ػذد ٍ ضذُ اػوبل خَد آسگَهبًْبی سٍی + سبثغ صیش ثشًبهِ دس اسز؟ چمذس a همذاس .ضًَذ هی یبثی همذاس آى آسگَهبًْبی + اػوبل اص لجل .گشداًذ هی

    صیش ثشًبهِ دس Interpreter اػوبل دیگش آسگَهبى سِ سٍی سا 1 سبثغ کٌذ هی سؼی .دّذ هی خغب دیغبم ًذاسد ٍجَد سبثؼی چٌیي ایٌکِ سجت ثِ ٍ کٌذ

  • LISPهای برنامه

    حبصل اٍل دس .ضًَذ یبثی همذاس آى آسگَهبًْبی * ثبیذ سبثغ اػوبل اص لجل صیش ثشًبهِ دس (* 1 -) همذاس سذس ٍ (2 3 .ضًَذ هی یبثی همذاس (اسز خَدش ثشاثش کِ)5 ّن ٍ (4

    .ضَد هی اػوبل -1ٍ 5ٍ 3 آسگَهبًْبی سٍی * ّن آخش دس

    هثال .کٌذ کبس دیگش ًَع اص آسگَهبًْبیی ثب ػذدی آسگَهبًْبی جبی ثِ سبثؼی کٌیذ فشض آى اگش .کٌذ هی چبح سا آى ٍ هیگیشد سا Symbol یک کِ داسین Print ًبم ثِ سبثؼی

    افشذ؟ هی اسفبلی چِ کٌین اسشفبدُ صیش ثصَسر سا

  • LISPهای برنامه

    سبثغ آًکِ اص لجل Print ضَد اجشا آسگَهبًص سٍی Salam ضَد همذاسیبثی ثبیذ. .Salam خَد ًِ ضَد هی اػوبل Salam سٍی هٌشست همذاس سٍی Print سبثغ دس.ضَین هی هَاجِ خغب دیبم ثب ًجبضذ هؼشجش Salam همذاس اگش حبل

    حل راه: ثِ سا P ثؼذ ٍ دّین اًشسبة P هثل دیگش ًوبد ثِ سا Salam ًوبد ًحَی ثِ

    :ثذّین Print ثِ آسگَهبى ػٌَاى

    کٌیذ سَجِ دیگشی هثبل ثِ اسز هجْن هسئلِ کوی اگش . . .

  • ًبم ثِ سبثؼی کٌیذ فشض Length ِآسگَهبى ػٌَاى ثِ سا لیسز یک کِ این سبخش ) لیسز سٍی سا آى ثیبییذ .گشداًذ هی ثش سا آى عَل ٍ گیشد هی 1 2 3 4 اهشحبى (

    ضذ؟ خَاّذ چِ ًشیجِ ضوب ًظش ثِ کٌین؛

    سٍی سبثغ آًکِ اص لجل ( 1 2 3 4 Lisp .ضَد یبثی همذاس ثبیذ لیسز ضَد اجشا ( هَاجِ خطا ثب ًذاسین سبثؼی چٌیي چَى ٍ کٌذ اػوبل 2ٍ3ٍ4 سٍی سا 1 کٌذ هی سؼی

    .ضَین هی

    حل راه:

    اص لیسشی همذاس ػٌَاى ثِ ٍ ثگیشد آسگَهبى سؼذادی کِ ثبضین داضشِ سبثؼی.گشداًذ ثش سا خَد آسگَهبًْبی

    LISPهای برنامه

  • LISPهای برنامه

    ُسبثغ آًگب Length ثشد کبس ثِ سَاى هی صیش صَسر ثِ سا:

    تر ساده حل راه :

    سبثغ اػوبل اص لجل Lisp کِ کٌین کبسی سَاًسشین هی فَق هثبل دٍ ّش دس اگش.ًویطذین هَاجِ خطا ثب آًگبُ ًکٌذ همذاسیبثی سا آى آسگَهبًْبیص سٍی

    Single) ‘ یک دادى لشاس ثب Lisp دس کبس ایي quote) اًجبم اثشذایؼجبسر دس .ًکٌذ همذاسیبثی سا آى گَیذ هی Interpreter ثِ ٍ ضَد هی

  • LISPهای برنامه

    هثبل :

    اٍل هثبل دس ( + 1 2 .ضَد هی 3 ثشاثش ػجبسر کل حبصل ٍ اسز ضذُ هحبسجِ ( .ضَد هی ثبصگشداًذُ لیسز خَد ٍ ضَد هی همذاسیبثی هبًغ ‘ ػالهز دٍم هثبل دس ٍلی: یبثٌذ سغییش صیش صَسر ثِ ثبیذ لجلی هثبل دٍ دس

    ًبم ثب سبثؼی ٍالؼب لیسخ دس کِ ثذاًیذ ًیسز ثذ List داسد ٍجَد کبسائی ّویي ثب.

  • توابع اولیهًبم Lisp کلیذی کلوبر اص List Processing ِسَاى هی ّویٌجب اص ٍ ضذُ گشفش

    سٍی ثش کبس ثشای اٍلیِ سَاثغ سؼذادی لیسخ دس .ثشد دی ّب لیسز سٍی ثش کبس اّویز ثِ: ضَین هی آضب آًْب اص ثشخی ثب صیش دس کِ داسد ٍجَد ّب سضشِ

    CAR

    :گشداًذ هی ثش سا آى ػضَ اٍلیي ٍ گیشد هی لیسز اص آسگَهبى یک سبثغ ایي

  • توابع اولیه

    CDR

    بعد به دوم اعضای ضبهل لیسز یک ٍ گیشد هی لیسز ًَع اص آسگَهبى یک سبثغ ایي.گشداًذ هی ثبص لیسز

    ًِبهْبی کِ کٌیذ سَج CAR ٍ CDR ثبضٌذ هی لیسخ اٍلیِ سبخشبس ثِ هشثَط ٍ .ثبضٌذ ضذُ HEAD ٍ TAIL یب ٍ FIRST ٍ REST جذیذ ّبی دسًسخِ اسز هوکي

  • توابع اولیه

    CONS

    یک ٍ گیشد هی آسگَهبى ػٌَاى ثِ سا List یک ٍ S-Expression یک سبثغ ایي

    آى اػضبی بقیه ٍ S-Expression ّوبى آى اول ػضَ کِ گشداًذ هی ثبص لیسز .اسز لیسز اػضبی ّوبى

  • LISPهای برنامه

    ِکٌیذ سَجِ صیش هثبلْبی ث:

    چَى آخش هثبل دس Nil یک Symbol آى جلَ ٍ اسز Quote ًطذُ گزاضشِ ّن ضَد اػوبل هٌشست همذاس سٍی CONS سبثغ ٍ ضَد هحبسجِ آى همذاس اٍل ثبیذ دس !!! است یکی اش باالیی مثال با آن مقدار ولی

    است Nilخود نماد Nilدر لیسپ مقدار منتسب به نماد

  • LISPهای برنامهِسبصی دیبدُ کِ گفز سَاى هی کلی عَس ث Lisp ثبضذ هی دیًَذی لیسشْبی ثشاسبس.

    .کشد ًگْذاسی صیش ثصَسر سَاى هی Lisp دس سا سکَسدّب ٍ ّب دادُ

    اًذ ضذُ رخیشُ لیسز یک دس سکَسد سؼذادی صیش هثبل دس:

    یک ثِ لیسز اگش Symbol ًِبم ث L ثشاثش دٍم سکَسد خبًَادگی ًبم ضَد هٌشست :

    ُداسد ٍجَد فَق ػجبسر ًَضشي ثشای ًیض سشی سبدُ سا:

    یک ّوبًٌذ کٌیذ هی هطبّذُ ثبال دس کِ سبخشبسی Macro فشم ثِ سفسیش اص لجل (CAR (CDR (CDR (CAR (CDR L .آیذ هی دس (((((

  • هاPredicate و منطقی مقادیر

    دیگش کبسثشدّبی اص دیگش یکی Nil ثبضذ هی ًبدسسز همبدیش ثیبى جْز.

    ثِ هٌشست همذاس Nil خَد Nil ثِ ػجبسار دس ٍ ثبضذ هی Quote ًذاسین ًیبصی.

    دس دسسز همذاس دادى ًطبى ثشای Lisp ًوبد اص T ُثشین هی ثْش.

    سبثغ هثبل ثشای ATOM دس Listدبیِ سَاثغ جضء سبثغ ایي ثگیشیذ؛ ًظش دس سا صیش Lisp ثبص آى ثَدى اسن جْز هٌغمی همذاسی ٍ گیشد هی آسگَهبى یک کِ ثبضذ هی

    .گشداًذ هی

  • هاPredicate و منطقی مقادیر

    ِاسز هٌغمی همذاس یک آًْب اص ثشگطشی همذاس کِ سَاثؼی ث Predicate گَیین.

    EQ

    خبًِ یک ثِ هشثَط آسگَهبى دٍ ایي آیب کِ گَیذ هی ٍ گیشد هی آسگَهبى دٍ سبثغ ایي

    !خیش یب اًذ حبفظِ

    دٍ اگش Symbol ایي لیسخ گیشًذ؛ هی لشاس حبفظِ آدسس یک دس ثبضٌذ هسبٍی Symbolًبم ثِ جبیی دس سا ّب Atom Table هَسد دس سبثغ ایي .کٌذ هی ًگْذاسی

    :ثجیٌیذ کٌذ هی ػول سسبٍی ثشسسی سبثغ ّوبًٌذ ّب اسن

  • دستورات کنترلیکِ کشدین ثشسسی لجال:

    صَسر هی دزیشدهحبسجِ ػجبسار ثَسیلِ Lispجشیبى کٌششلی دس

    صثبى اص هثبل یک ثب C حلمِ ٍ ضشعی دسشَسار اگش کِ ثیٌین هی ٍ کٌین هی ضشٍع :ًوبیین سبصی دیبدُ سَاًین هی ّن ثبص ثبضین ًذاضشِ ّن

    دس لیسخ ثصَسر احضبس سَاثغ ٍ اجشای ّش سبثغ سٍی آسگَهبًْبی خَدش اسز هحبسجِ

  • دستورات شرطیسبثغ ثَسیلِ لیسخ دس ضشعی ػولیبر COND سبثغ ایي آسگَهبًْبی .ضَد هی اًجبم

    :اسز ػضَی دٍ لیسز صیبدی سؼذاد ضبهل

    َػضَ.ثبضذ غلظ یب دسسز سَاًذ هی کِ اسز هٌغمی لیسز یک ػجبسر ّش اٍل ػض سبثغ کل ػٌَاى ثِ اسز هوکي آى حبصل کِ اسز ػجبسر یک لیسز ّش دٍم

    COND ُضَد ثبصگشداًذ.

    Lisp ػضَ ثَد صحیح اٍل ػضَ اگش .کٌذ هی اهشحبى سشسیت ثِ سا دٍسبیی لیسشْبی .سٍد هی ثؼذی ػضَ سشاؽ ثِ ٍگشًِ گشداًذ هی ثبص جَاة ػٌَاى ثِ سا دٍم

    .لجل اص اجشا ضذى آسگَهبًْبی خَد سا هحبسجِ ٍ همذاس یبثی ًوی کٌذ CONDسبثغ

  • دستورات شرطی

    ثِ هٌشست همذاس کٌیذ فشض صیش هثبل دس C X ثبضذ:

    ػجبسر چَى فَق هثبل دس (eq x ‘c) همذاس اسز ثَدُ صحیح cc’ ِحبصل ػٌَاى ث .اسز ضذُ ثشگشداًذُ COND سبثغ فشاخبًی

    ّبی ثشًبهِ دساکثش Lisp سبثغ دس COND صَسر ثِ سا آخش دسشَس (T exp) ًیض

    چرا؟ ًَیسٌذ؛ هی

  • ORو ANDتوابع

    گیشًذ هی آسگَهبى دلخَاّی سؼذاد سَاثغ ایي ٍ AND یب OR گشداًٌذ هی ثش سا آًْب.

    یبثی همذاس سا خَد آسگَهبًْبی سوبهی اثشذا کِ اسز ایي دس هؼوَلی سَاثغ ثب آًْب سفبٍر

    سب کٌٌذ هی هحبسجِ چخ ثِ ساسز اص سشسیت ثِ سا آًْب ثلکِ (COND هثل)کٌٌذ ًوی سا ثؼذی ّبی آسگَهبى دیگش آى اص ثؼذ ٍ ضَد هؼلَم OR یب AND حبصل کِ جبیی

    .کٌٌذ ًوی هحبسجِ

  • تعریف توابع در لیسپ

    سَاى ًوی ّن سبدُ ّبی ثشًبهِ حشی آهَخشین لیسخ هَسد دس کٌَى سب کِ هغبلجی ثب .داسین ًیبص حلمِ ٍ اًشسبة دسشَسار ثِ حذالل چَى ًَضز

    ًَِسَاًین هی چگ Iteration (ًوبیین؟ سبصی دیبدُ لیسخ دس سا (تکرارضَد هی سبخشِ سَاثغ سؼشیف ثب لیسخ ثشًبهِ یک.

    اص ثبضذ ًیبص سکشاس ثِ ثشًبهِ دس اگش ٍ ًذاسد ٍجَد حلمِ لیسخ دس Recursion .ضَد هی اسشفبدُ

    سَاثغ سبثغ یک دسٍى حشی ٍ ًَضز سا دسشَسار اص ای دًجبلِ سَاى هی سبثغ یک دس .ًوَد سؼشیف ًیض جذیذ

  • (Lambda (دستور

    سبثؼی کٌیذ فشض هثبل ثشای .گشداًذ هی ثش سا سبثغ یک همذاس ػٌَاى ثِ دسشَس ایي :گشداًذ هی ثبص سا آًْب هجوَع ٍ گیشد هی سا ػذد دٍ کِ داسین

    دٍم آسگَهبى Lambda ثؼذی آسگَهبى ٍ اسز ًظش هَسد سبثغ آسگَهبًْبی اص لیسشی .دّذ هی ًطبى آسگَهبًْب ثِ سَجِ ثب سا سبثغ ثبصگطشی همذاس ّن

    Lambda سؼشیف سبثغ ًیسز ثلکِ حبصل آى یک سبثغ اسز!!!

    سبثغ هثبل ایي دس ((Lambda (x y) (+ x y) 2 3 2ٍ آسگَهبًْبی سٍی (3.ضَد هی ثشگشداًذُ ػجبسار کل حبصل ػٌَاى ثِ 5 ٍ ضذُ اػوبل

  • Defineدستور

    ِکٌین اسشفبدُ آى اص دفؼبر ثِ ٍ کٌین سؼشیف ثبس یک سا سبثغ خَاّین هی هب ّویط. Symbol یک ثِ سا (Lambda حبصل) سبثغ یک کِ اسز کبفی کبس ایي ثشای

    :کٌین هی اسشفبدُ Define اص کبس ایي ثشای .دّین هی اًشسبة

    !!!فراموش نشود

    ػالهز Quote آسگَهبى اص لجل Define اسز هْن ثسیبس

    ِثَسیل Define کشد سؼشیف سبثغ چٌذ سَاى هی.

  • ٍسبثغ د PLS ٍ MNS ِگشداًٌذ هی ثش سا ػذد دٍ سفبضل ٍ هجوَع سشسیت ث:

    MNSو PLSتوابع

    ضًَذ هی دادُ سبثغ ثِ آسگَهبى ػٌَاى ثِ کِ همذاسّبیی صًین هی صذا سا سبثغ یک ٍلشی .ضَد هی هٌشست داسًذ ٍجَد سبثغ سؼشیف دس کِ آسگَهبًْبیی ثِ حمیمز دس

  • تعریف توابع در لیسپ

    کٌیذ اسشفبدُ سَاًیذ هی ّب ًسخِ اکثش دس کِ سَاثغ سؼشیف ثشای دیگش دسشَس یک (Defun(Define Function)) ضَد هی اسشفبدُ صیش صَسر ثِ کِ اسز:

    کٌذ حسبة سا ػذد دٍ جوغ کِ کٌین هی سؼشیف سا سبثؼی هثبل ثشای:

    لیسخ دس سا سَاثغ اکثش سَاًین هی آٍسدین ثذسز لیسخ دسثبسُ اکٌَى کِ اعالػبسی ثب .کٌین سبصی دیبدُ

  • LISPهای برنامه

    ِػذد کِ ثٌَیسیذ ای ثشًبه n ثگیشد سا ٍ n! ثشگشداًذ سا:

    اگش فَق ثشًبهِ دس n

  • LISPهای برنامهIF

    :کٌذ هی ساحز سا کبس ٍ داسد ٍجَد لیسخ جذیذ ّبی ًسخِ اکثش دس سبثغ ایي

    دسشَس ایي ثَد دسسز اگش .کٌذ هی هحبسجِ سا سا IF کِ کٌیذ سَجِ .گشداًذ هی ثبص سا صَسر ایي غیش دس کٌذ هی همذاسیبثی

    .کٌذ ًوی همذاسیبثی سا خَد آسگَهبًْبی ّوِ COND هثل ّن

    سبثغ حبل Fact ثب سا IF ًَیسین هی:

  • LISPهای برنامه

    ِثبصگشداًذ سا آى عَل ٍ ثگیشد آسگَهبى ػٌَاى ثِ سا لیسز یک کِ ثٌَیسیذ ای ثشًبه:

    ثْشُ هی ثشین ثبصگطزّسشٌذ دس اص CAR ٍCDRسٌْب دسشَساسی کِ ثلذ ّسشین

    کٌین هی ثشًبهِ ثِ سجذیل سا ساثغِ ایي حبل:

    ِاسن کِ کٌیذ سَج Nil اسز خبلی لیسز هؼبدل.

  • LISPهای برنامه

    ِلیسز کِ ثٌَیسیذ ای ثشًبه L ٍ ػذد N ثگیشد سا ٍ Nػضَ اهیي L اگش .ثشگشداًذ سا N هحذٍدُ اص L همذاس اسز خبسج Nil ثبصگشداًذ سا:

    اسز (CDR(N-1اهیي ػضَ N-1ّوبى Lاهیي ػضَ N :راهنمایی

  • Eval تابع

    ضکل ثِ ای دادُ هثال .ثبضذ ثشًبهِ یک سَاًذ هی خَدش لیسخ دس دادُ یک (+ 2 1) .ضَد گشفشِ ًظش دس ّن ثشًبهِ یک ثصَسر سَاًذ هی کِ اسز ػضَی سِ لیسز یک

    ثِ سا آًْب خَاّین هی ٍ داسین ّبیی دادُ کٌیذ فشض حبل Interpreter لیسخ ثب کبس ایي .ثبضین ًَضشِ Lisp فشهبى خظ دس سا آًْب ایٌکِ هثل .کٌذ اجشا سب ثذّین

    :کٌذ هی یبثی همذاس ٍ هحبسجِ سا خَد آسگَهبى سبثغ ایي .دزیشد هی اًجبم Eval سبثغ

    اسز ‘ثش ػکس کبس Evalهی سَاى گفز کبس

  • ماکروها

    دس هبکشٍ یکLisp ِی ًوبیٌذُ ٍ اسز اسشفبدُ حبل دس سبثغ یک ضجیِ سغحی عَس ث .ثبضذ هی ًیض ثشًبهِ اصلی کذ ضکل سغییش یک

    ًَیسبى ثشًبهِ ثِ هبکشٍّبLispدّذ هی سا صثبى دس جذیذ ًحَی ّبی فشم ایجبد اهکبى. ضًَذ هی احضبس کٌذ سَلیذ سا ًْبیی اصلی کذ کبهذبیلش ایٌکِ اص لجل سَاثغ ایي. ػولگش ّش هبکشٍّبCLکٌٌذ اسشفبدُ سَاًٌذ هی سا.

  • کاربردها

    اسشبًذاسد ی کویشِ اص ثضسگ اًشظبسار ٍجَد ثبCommon Lispثشًبهِ صثبى یک دس کِ ٍیژُ کبسثشدی ّبی هحیظ یب ٍ داًطگبُ دس اغلت کِ هبًذ ثبلی هٌبست ًَیسی .سٍد هی کبس ثِ اسز مصنوعی هوش ثب اسسجبط

    کبسثشاى اص ثسیبسیCommon Lisp آضٌبی هثبل ضبى هغلَة صثبى هؼشفی ثشای دسضوي .اسز یبفشِ گسششش CL ثب کِ صًٌذ هی سا yahoo ثبصسگبًی سبیز

    Common صثبى ثِ هَفمی ثبص هٌجغ کذ کبسثشدّبی Lispهثل داسد ٍجَد:

    acl2: ًظشیِ کٌٌذُ ثبثز یکMaxima: خجشُ کبهذیَسشی ججشی سیسشن یک. Compo: ِدّذ هی سا عجیؼی سٍش سَصیف اجبصُ هَسیمی سبخشبسّبی ث. Lisa: َّش" افضاسی ًشم ّبی ًوبیٌذُ سبخشي ثشای لبًَى سَلیذ سیسشن"

  • کاربردها

    Common Lispٍالغ ثشسسی هَسد مشکل مسائل ٍلشی CL کبسثشدّبی اص ثسیبسی ػالٍُ ثِ .داسد کبسثشد ضًَذ هی آى ثشای کِ کٌذ هی سکویل سا "صثبى ثِ صثبى" سٍش یک

    کٌذ هی فشاّن صثبى هبًٌذ سا ّب دادُ دسشکبسی اهکبى ثشًبهِ

  • The End