نام کاربری:  
رمز عبور:     

ثبت نام سریع :
نام کاربری: رمز عبور: تایید رمز ورود: ایمیل: تایید ایميل:

خوش آمدید, مهمان
شما برای پست کردن در این انجمن باید قبلا ثبت نامکرده باشید.

نام کاربری
  

رمز ورود
  


جستجوی انجمن ها

(جستجوی پیشرفته)

آمار انجمن
» تعداد اعضاء: 1,812
» جدیدترین عضو: siamak_441
» تعداد تاپیک های انجمن: 1,127
» تعداد پست های انجمن: 5,820

آمار کامل

کاربران آنلاین
در حال حاضر 6 نفر آنلاین است.
» 0 عضو | 6 مهمان

جدیدترین ارسال ها
استادهای خوب رو معرفی کنی...
آخرین پست توسط: M.J.13
امروز ۰۱:۵۴ صبح
» پاسخ ها: 44
» مشاهده: 1173
تاپیک کلی مشاعره
آخرین پست توسط: هومن
امروز ۱۲:۴۹ صبح
» پاسخ ها: 514
» مشاهده: 10525
یک الگوریتم برای string m...
آخرین پست توسط: Mohammad
۱۳-۶-۱۳۸۷ ۱۲:۳۵ عصر
» پاسخ ها: 1
» مشاهده: 23
اوقات شرعی همه شهرهای ایر...
آخرین پست توسط: هومن
۱۳-۶-۱۳۸۷ ۱۰:۴۴ صبح
» پاسخ ها: 0
» مشاهده: 36
اس ام اس های طنز!
آخرین پست توسط: هومن
۱۳-۶-۱۳۸۷ ۱۰:۳۹ صبح
» پاسخ ها: 22
» مشاهده: 273
مطالب و عکس های جالب
آخرین پست توسط: هومن
۱۳-۶-۱۳۸۷ ۱۰:۳۶ صبح
» پاسخ ها: 27
» مشاهده: 1300
بازي جذاب بولينگ
آخرین پست توسط: هومن
۱۳-۶-۱۳۸۷ ۱۰:۳۲ صبح
» پاسخ ها: 0
» مشاهده: 17
نرم افزار مهمان خدا مخصوص...
آخرین پست توسط: هومن
۱۳-۶-۱۳۸۷ ۱۰:۲۹ صبح
» پاسخ ها: 0
» مشاهده: 19
Offline Explorer Enterpri...
آخرین پست توسط: هومن
۱۳-۶-۱۳۸۷ ۱۰:۲۲ صبح
» پاسخ ها: 0
» مشاهده: 20
ساعتی که با تغییرات دمای ...
آخرین پست توسط: هومن
۱۳-۶-۱۳۸۷ ۱۰:۲۱ صبح
» پاسخ ها: 0
» مشاهده: 16

 
  آموزش Scheme - بخش چهارم
پست شده توسط: melomane - ۲۸-۱-۱۳۸۶ ۱۰:۱۶ عصر - پاسخ ها (1)
0

شرط ها*
مانند همه ی زبان های برنامه نویسی، اسکیم هم عبارات شرطی دارد. اساسی ترین فرم شرط if است. ساختار یک عبارت شرطی با if به صورت زیر است:
(if test-expression
then-branch
else-branch)
اگر test-expression به true ارزیابی شود (هر مقداری که #f نباشد) then-branch ارزیابی می شود. در غیر این صورت else-branch ارزیابی می شود. قسمت else اختیایر است.
(define p 80)

(if (> p 70)
'safe
'unsafe)
=> safe

(if (< p 90)
'low-pressure) ;no ``else'' branch
=> low-pressure
*برای بهینه سازی اسکیم عبارات دیگری برای شرط دارد که می توانند به صورت ماکرو تعریف شوند.
when و unless:
برای مواقعی که فقط یکی از بخش های شرط (بخش then یا else) از شرط پایه لازم است است، unless و when عبارات شرطی ببهینه تری هستند.
(when (< (pressure tube) 60)
(open-valve tube)
(attach floor-pump tube)
(depress floor-pump 5)
(detach floor-pump tube)
(close-valve tube))
بازنویسی این برنامه با if به این صورت خواهد بود:
(if (< (pressure tube) 60)
(begin
(open-valve tube)
(attach floor-pump tube)
(depress floor-pump 5)
(detach floor-pump tube)
(close-valve tube)))
توجه داشته باشید که when در خود begin را به طور غیر صریح دارد در حالی که اگر هر یک از بخش های شرط بیشتر از یک فرم باشند، If نیازمند begin است.
این برنامه با unless به صورت زیر است:
(unless (>= (pressure tube) 60)
(open-valve tube)
(attach floor-pump tube)
(depress floor-pump 5)
(detach floor-pump tube)
(close-valve tube))
(همه ی مفسرهای اسکیم دو فرم while و unless را ندارند. در این صورت می توانید آن ها را به صورت ماکرو تعریف کنید)

 

  آموزش Scheme - بخش سوم
پست شده توسط: melomane - ۲۷-۱-۱۳۸۶ ۱۲:۲۹ صبح - پاسخ ها (1)
0

فرم ها:
احتمالا تا اینجا متوجه شدید تمامی مثال هایی که از برنامه های اسکیم گفته شد به نوعی s-expression هستند. این برای تمامی برنامه ها در اسکیم صدق می کند:
برنامه ها هم در واقع داده هایی هستند.
از این رو داده ی کاراکتری #\c یک برنامه و یا بهتر بگوییم یک فرم است. ما به جای واژه ی برنامه از اصطلاح کلی تری به نام فرم استفاده می کنیم. بنابراین می توانیم با هر قطعه از برنامه کار کنیم.
اسکیم فرم #\c را به مقدار #\c ارزیابی می کند. چون #\c یک خود-ارزیاب است.
همانطور که در فصل قبل گفته شد منظور از یک فرم خود-ارزیاب فرمی است که حاصل ارزیابی آن مقداری مانند خود فرم است.
همه ی s-expressionها خود-ارزیاب نیستند. به عنوان مثال اگر یک s-expression از نوع سمبل با نام xyz ارزیابی شود حاصل مقداری است که متغیر xyz در خود دارد و یا s-expression : (string->number "16") به عدد 16 ارزیابی می شود.
همه ی s-expression ها به عنوان یک برنامه معتبر نیستند. اگر شما در listener یک s-expression از نوع dotted-pair تایپ کنید مثلا (1 . 2) با پیغام خطا مواجه خواهید شد.
اسکیم یک لیست از فرم ها را بر اساس اولین عنصر فرم (در اصطلاح راس فرم) ارزیابی می کند. اگر راس فرم به یک روال ارزیابی شود بقیه ی فرم به عنوان آرگومان های روال در نظر گرفته می شود. به این ترتیب روال بر آرگومان های ورودی اش اعمال می شود. اگر راس فرم یک نوع خاص باشد ارزیابی به صورت جداگانه روی فرم اعمال می شود. چند فرم خاص که تا اینجا با آن ها آشنا شدیم begin و define و set! هستند. begin باعث می شود زیر-فرم هایش به ترتیب و دنباله وار ارزیابی شوند.define متغیرها را تعریف و مقداردهی اولیه می کند. set! نیز یک متغیر را تغییر می دهد.

 

  دبیان گنو/لینوکس ۴ منتشر شد!
پست شده توسط: M.J.13 - ۲۱-۱-۱۳۸۶ ۰۱:۳۵ صبح - پاسخ ها (1)
0

س از ۲۱ ماه برنامه‌نویسی مداوم، پروژه‌ی دبیان با کمال مسرت انتشار نهایی دبیان گنو/لینوکس ۴ را با نام کد اِچ اعلام میکند. دبیان گنو/لینوکس یک سیستم عامل آزاد است که از ۱۱ معماری مختلف پروسسور پشتیبانی میکند و شامل محیطهای گرافیکی KDE، GNOE و Xfce است. این انتشار همچنین دارای شاخصه‌های رمزنگاری و سازگاری با FHS V2.3 و نرم‌فزارهای توسعه یافته برای ویرایش ۳/۱ از LSB است.
اکنون با استفاده از یک پروسه‌ی نصب کاملا خودکار، دبیان گنو/لینوکس ۴/۵ از پارتیشنهای رمزشده بدون نیاز به تنظینات دستی پشتیبانی میکند. این انتشار از یک نصاب جدید گرافیکی با قابلیت پشتیبانی از کاراکترهای ترکیبی و زبانهای پیچیده است. سیستم نصب دبیان به ۵۸ زبان مختلف ترجمه شده است.

ادامه دارد...

 

  آموزش Scheme - بخش دوم
پست شده توسط: melomane - ۱۹-۱-۱۳۸۶ ۰۲:۲۱ صبح - پاسخ ها (1)
0

بخش دوم - انواع داده ها

یک نوع داده مجموعه ی مقادیری است که با هم ارتباطی دارند به عبارتی در خاصیتی با هم مشترک هستند. اسکیم مجموعه ای غنی از انواع داده ها را دارد.بعضی از این انواع ساده و بعضی دیگر ترکیبی از انواع دیگر هستند.

انواع داده های ساده:

در اسکیم انواع داده ی ساده شامل انواع بولی٬ اعداد٬ کاراکتر ها و سمبل ها است.

بولین(boolean):

داده های بولی در اسکیم به صورت t# برای true و f# برای false هستند. اسکیم به طور پیش فرض روالی به نام ?boolean دارد که بررسی می کند آرگومان ورودیش یک داده از نوع بول است یا خیر:

کد:
(boolean? #t)              =>  #t

(boolean? "Hello, World!") =>  #f

روال not آرگومان ورودی خود را منفی می کند. توجه کنید که آرگومان برای این روال یک نوع داده بولی در نظر گرفته می شود. از این رو اسکیم در برابر هر عبارتی که f# نباشد به عنوان t# رفتار می کند. مثال آخر این مسئله را به وضوح نشان می دهد:

کد:
(not #f)              =>  #t

(not #t)              =>  #f

(not "Hello, World!") =>  #f

ادامه مطلب ...

 

  آموزش Scheme - بخش اول
پست شده توسط: melomane - ۱۹-۱-۱۳۸۶ ۰۲:۱۸ صبح - پاسخ ها (1)
0

بخش اول - سرآغاز اسکیم
معمولا اولین برنامه ی متعارفی که در هر زبانی نوشته می شود برنامه ی Hello World است. برای نوشتن چنین برنامه ای در زبان Scheme ویرایشگری را باز کنید و فایلی به نام hello.scm با محتوبات زیر بسازید:

کد:
;The first program

  (begin

  (display "Hello, World!")

   (newline))

اولین خط توضیح است. وقتی اسکیم به سمی کولون می رسد تمام محتویات آن خط را نادیده می گیرد.

فرم begin در اسکیم راهی برای معرفی دنباله ای از زیر فرم ها (subforms) است. در اینجا دو زیر فرم داریم. اولین زیرفرم فراخوانی روال display است که آرگومان خودرا (در اینجا رشته ی “Hello World”) در کنسول (و یا خروجی دیگر) به نمایش در می آورد. زیرفرم دوم فراخوانی روال newline است که یک خط خالی ایجاد می کند.

ادامه مطلب ...

 


تماس با ما - Code Corona - بازگشت به بالا - بازگشت به محتوا - بایگانی انجمن - Portal - RSS