|
معمولا اولین برنامه ی
متعارفی که در هر زبانی نوشته می شود برنامه ی Hello World است.
برای نوشتن چنین برنامه ای در زبان Scheme ویرایشگری را باز کنید و فایلی به نام hello.scm با محتوبات زیر بسازید:
;The first program
(begin
(display
"Hello, World!")
(newline))
اولین خط توضیح است. وقتی
اسکیم به سمی کولون می رسد تمام محتویات آن خط را نادیده می گیرد.
فرم begin در
اسکیم راهی برای معرفی دنباله ای از زیر فرم ها (subforms) است.
در اینجا دو زیر فرم داریم. اولین زیرفرم فراخوانی روال display است که
آرگومان خودرا (در اینجا رشته ی “Hello World”) در کنسول (و یا خروجی دیگر) به نمایش در می آورد. زیرفرم دوم فراخوانی روال newline است که یک خط خالی ایجاد می کند.
اکنون برای اجرای این دستورات
باید کار با اسکیم را شروع کنید. این کار اغلب به راحتی با تایپ دستور اجرایی
اسکیم در خط فرمان سیستم عامل صورت می گیرد. مثلا اگر MzScheme دارید
در خط فرمان بنویسید:
mzscheme
اگر
مفسر اسکیم را ندارید به این لینک مراجعه کنید.
با این کار مفسر اسکیم
فراخوانی می شود.
(در اصطلاح به اینگونه مفسر
ها که خط به خط فرمان را اجرا می کنند listener گفته
می شود.)
این listener فرمان
را از ورودی خوانده٬ ارزیابی می کند و سپس نتایج را به خروجی می برد و سپس منتظر
گرفتن فرمان جدید از شما می شود.
اکنون در قسمت خط فرمان listener فایل باید بارگذاری شود:
(load "hello.scm")
حالا اسکیم فرمان شما را
گرفته و ارزیابی می کند و به این ترتیب Hello World در
خروجی نمایش داده می شود. listener منتظر فرمان بعدی شما
می ماند.
البته در بیشتر listenerها نیازی نیست که هر بار فایل
را با یک ویرایشگر بسازید و بعد بارگذاری کنید. می توانید دستورات خود را مستقیما
در listener نوشته و نتایج را مشاهده کنید. این کار ساده
تر به نظر می رسد٬ به خصوص به هنگام یادگیری و زمانی که تنها قصد کاوش در زبان
اسکیم را دارید.
به عنوان نمونه نوشتن این
دستورات در خط فرمان listener
(begin (display "Hello, World!")
(newline))
این نتیجه را دارد:
Hello, World!
در واقع این کار را می توان
به صورت ساده تری نیز انجام داد٬ یعنی تنها با تایپ کردن عبارت
“Hello, World!"
که این نتیجه را به همراه
دارد:
“Hello, World!"
اما توجه کنید که تفاوت بزرگی
بین این دو برنامه است. خروجی برنامه ی
اول تنها رشته است اما برنامه دوم دابل
کوتیشن را نیز به همراه دارد.
یک تفاوت اساسی دیگر بین این
دو برنامه وجود دارد. دستورات در برنامه ی اول به چیزی ارزیابی نمی شوند بلکه حاصل٬
تاثیر دو روال display و newline بر خروجی است. اما ارزیابی در برنامه ی دوم است که نتیجه را به همراه دارد که در اینجا
نتیجه همانند خود فرم است.
در این مقاله ی آموزشی از
<= به عنوان نتیجه ی حاصل از رزیابی استفاده می کنیم. به عنوان مثال:
“Hello, World!” => “Hello, World!"
با اتمام کار٬ ما هنوز در listener هستیم. برای خروج از listener از این
دستور استفاده کنید:
(exit)
با این دستور شما از listener اسکیم خارج شده و به خط فرمان سیستم عامل (که خود یک listener است) منتقل می شوید.
استفاده ی تعاملی از listener برای تست کردن برنامه ها و دستورات جدا از هم بسیار مناسب است هر
چند که به هیچ وجه ضروری نیست. شما می توانید همچنان تمام برنامه ی خود را در یک
فایل ذخیره کنید و بدون استفاده ی مستقیم از listener نتایج
را مشاهده کنید. برای این کار در خط فرمان سیستم عامل این دستور را تایپ کنید:
mzscheme -r hello.scm
با این کار همان پیغام در
کنسول چاپ می شود بدون اینکه شما مستقیما listener را باز
کنید.
مهدی ییلاقی اشرفی
|