Assignment2.pdf

‫سپْز اسذی‪ ،‬کاهیار اللَْردی‬
‫آشنایی اولیه با لیسپ‬
‫هْلت تحَیل‪ :‬یکشٌبِ ‪ 7‬آباى ‪1311‬‬
‫ّواًطَر کِ هی داًیذ یکی اس هْوتزیي هفاّین سباى لیسپ لیستّا ّستٌذ‪ .‬در ایي توزیي چٌذ تابع اٍلیِ بزای کار با‬
‫لیستّا پیادُ ساسی هیشَد‪.‬‬
‫تَجِ کٌیذ کِ شوا بایذ تَابع سیز را خَدتاى پیادُساسی کٌیذ ٍ در صَرت ٍجَد تابع بِ صَرت پیشفزض در لیسپ‪،‬‬
‫اهکاى استفادُ اس آى را ًذاریذ‪.‬‬
‫بزای شزٍع سباى ‪ racket‬را اًتخاب کٌیذ‪:‬‬
‫‪#lang racket‬‬
‫در ایي توزیي فقط اس تَابع سیز هیتَاًیذ استفادُ کٌیذ‪:‬‬
‫)‪(cons head lst‬‬
‫)‪(car lst‬‬
‫)‪(cdr lst‬‬
‫)‪(null? lst‬‬
‫)‪(eqv? x y‬‬
‫‪1‬‬
‫سؤال ‪1‬‬
‫تَابع سیز را کِ بزای کار با لیست ّستٌذ پیادُساسی کٌیذ‪:‬‬
‫‪1. (my_member node lst)  boolean‬‬
‫در صَرتی کِ ‪ node‬در لیست ‪ lst‬هَجَد باشذ‪ true ،‬بز هیگزداًذ‪.‬‬
‫‪2. (my_append lst1 lst2)  list‬‬
‫لیستی حاصل اس اضافِ شذى توام اعضای ‪ lst2‬بِ اعضای ‪ lst1‬بز هیگزداًذ‪.‬‬
‫‪3. (my_delete node lst)  list‬‬
‫پس اس حذف ‪ node‬اس ‪ ،lst‬لیست حاصل را بز هیگزداًذ‪.‬‬
‫‪4. (my_reverse lst)  list‬‬
‫ٍارٍى لیست را بز هیگزداًذ‪.‬‬
‫‪2‬‬
‫سؤال ‪2‬‬
‫با کوک گزفتي اس تَابعی کِ در سؤال ‪ًَ 1‬شتیذ‪ ،‬تابعی بٌَیسیذ کِ توام سیز هجوَعِّای یک لیست را در یک لیست‬
‫بزگزداًذ‪:‬‬
‫‪(my_subset lst)  list‬‬
‫‪3‬‬
‫نکات کلی‬
‫‪ ‬توزیي خَد را حذاکثز تا ساعت ‪ 23:51‬تاریخ ‪ 7‬آباى هیتَاًیذ با ‪ subject‬شوارُ داًشجَیی بِ آدرس‬
‫‪ [email protected]‬ارسال کٌیذ‪ .‬در هتي ایویل ًام ٍ ًام خاًَادگی ٍ شوارُ داًشجَیی خَد‬
‫ٍ در صَرت ٍجَد ًکتِی خاصی کِ بزای تصحیح توزیيتاى السم است را بٌَیسیذ‪.‬‬
‫‪ ‬ارسالّای با تأخیز تصحیح ًویشًَذ‪ .‬اس ارسال توزیي بعذ اس سهاى هقزر بپزّیشیذ‪.‬‬
‫‪ ‬پاسخ بِ توام سؤاالت را در یک فایل ‪ .rkt‬بٌَیسیذ ٍ اسن فایل را شوارُ داًشجَیی خَد قزار دّیذ‪.‬‬
‫‪ ‬اس کپی کزدى توزیيّا بپزّیشیذ‪ .‬در صَرت هشاّذُ‪ ،‬طزفیي ًوزُای هعادل هٌفی هجوَع کل ًوزُی توزیيّا‬
‫خَاٌّذ گزفت‪.‬‬
‫‪ ‬جَاب توزیيّای خَد را بِ گزٍُ ًفزستیذ‪.‬‬
‫‪ ‬سَاالت خَد را در گزٍُ هطزح کٌیذ تا دٍستاًتاى ّن استفادُ کٌٌذ‪.‬‬
‫‪4‬‬