HW1_Introduction.pdf

‫باسمه تعالی‬
‫آشنایی اولیه با زبان ‪Racket‬‬
‫زبان ‪ Racket‬یکی از زبانهای پیشرفتهی خانواده ‪( Scheme‬که خود یک ‪ Dialect‬از ‪ Lisp‬است) می باشد‪.‬‬
‫نرم افزار ‪ ،DrRacket‬یک محیط برنامه نویسی تعاملی‪ 1‬برای این زبان است ‪.‬برای نصب نسخه مناسب با توجه به‬
‫سیستم عامل خود به آدرس زیر مراجعه کنید‪:‬‬
‫‪http://racket-lang.org/download‬‬
‫بعد از اجرای برنامه با پنجره زیر مواجه میشوید‪ .‬در قسمت باال برنامه خود را مینویسید‪ .‬با زدن دکمه ‪Run‬‬
‫برنامه شما قابل اجرا شده و تابعهایی که در برنامهی خود تعریف کردهاید در قسمت پایین (محیط اجرای‬
‫دستورها و توابع) قابل استفاده هستند‪ .‬توجه کنید که بعد از هر تغییر باید دوباره دکمهی ‪ Run‬را بزنید‪.‬‬
‫‪Interactive‬‬
‫‪1‬‬
‫برای آشنایی بیشتر با توابع اولیه ‪ Racket‬میتوانید از لینک زیر استفاده کنید‪:‬‬
‫‪http://docs.racket-lang.org/quick/index.html‬‬
‫یک مثال‬
‫نرم افزار ‪ DrRacket‬را نصب کنید و برنامه موجود در تصویر صفحه اول و همچنین برنامه مثالی زیر را اجرا و‬
‫بررسی کنید‪( .‬ادامه در صفحه بعد)‬
‫از طریق اجرای این دو مثال‪:‬‬
‫‪ ‬با نحوه کار با محیط ‪ DrRacket‬به صورت کلی و اولیه آشنا شوید‪.‬‬
‫‪ ‬اسلوب و نحوه ای که برنامههای مثال با آن نوشته شده است را متوجه شوید‪.‬‬
‫‪ ‬با استفاده از راهنمای سریع ‪Racket‬‬
‫‪2‬‬
‫دستوراتی را که در این دو مثال مورد استفاده بودهاند یاد‬
‫بگیرید‪( .‬مثال دستور ‪)circle‬‬
‫‪ ‬توجه نمایید که در یک محیط برنامهنویسی قرار دارید‪ .‬نتایج محاسبات برنامه‪ ،‬به صورت پیامها یا‬
‫اتفاقاتی در همین محیط قابل مشاهده است‪.‬‬
‫‪ ‬سپس به موارد زیر پاسخ دهید‪:‬‬
‫‪-1‬‬
‫‪-2‬‬
‫‪-3‬‬
‫‪-4‬‬
‫‪-5‬‬
‫بیان کنید که چه ‪ Declaration‬هایی در برنامه موجود است‪.‬‬
‫چه دستورات و توابعی در بخش فراخوانی توابع ‪ ،‬فراخوانی شده اند؟‬
‫نتایج اجرای دستورات چه بوده است؟‬
‫چه چیستیهایی (‪ )What‬توسط ‪ Declaration‬های برنامه در محیط برنامه نویسی تعریف شده اند؟‬
‫چه چگونگیهایی (‪ )How‬توسط ‪ Language Implementation‬محاسبه شده یا در محیط برنامهنویسی‬
‫اعمال شده است؟‬
‫سوالهای باال ساده ولی مهم اند و اگر ابهامی در پاسخ به آنها نداشته باشید‪ ،‬به هدف این مثال دست یافتهایم‪.‬‬
‫این تمرین‪ ،‬مورد تحویلدادنی ندارد ‪‬‬
‫‪2‬‬
‫از این پیوند در دسترس است‪:‬‬
‫‪http://docs.racket-lang.org/quick/index.html‬‬