انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نظرسنجی

آیا با این روش آموزشی موافقید؟

بله
خیر

نویسنده موضوع: Haskell را با هم یاد بگیریم! (دستورات شرطی)  (دفعات بازدید: 14861 بار)

0 کاربر و 8 مهمان درحال مشاهده موضوع.

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
دستورات شل GHCi
« پاسخ #15 : 09 فروردین 1392، 06:17 ب‌ظ »
پست اول بروز گشت و روش محاسبه کتانژانت اضافه شد.

-------

خب ، اما شما نیاز دارید بدونید که چه چیزهایی لازمه برای شل هاسکل بدونیم؟ چه دستوراتی اینجا خیلی کاربرد دارند؟ چند دستور هست که مشابه شل ترمینال هستند ، اما روش بکار گیریشون متفاوته :

:cd
برای تغییر دایرکتوری استفاده میشه.

:load
برای لود و کامپایل برنامه ازش استفاده میشه.

:quit
برای خروج از ghci ازش استفاده میکنند.


قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین کیان

  • High Hero Member
  • *
  • ارسال: 2338
  • جنسیت : پسر
ترجمه بی سروتهی با اضافات خودم از مقدمه کتاب Learn You a Haskell for Great Good, 2011 (نسخه آنلاین کتاب)

هسکل سرگرمیه و این چیزیه که دربارش میتونم بگم!
یادگیری هسکل برای کسی که تجربه برنامه نویسی با پایتون، جاوا، ++C وووو داره ساده تره. اگر تا حالا برنامه نویسی نکردید ولی یک شخص باهوش هستید شرط می بندم (Miran Lipovaca شرط می بنده!) می تونید بشینید و هسکل یاد بگیرید. (واو! هسکل به عنوان اولین زبان برنامه نویسی تون؛ بعدا به خودتون افتحار می کنید :D)
در اولین برخوردم با هسکل، زبان خیلی عجیبی در نظرم اومد، اما بعد از رد شدن از این مانع اولیه، همه چی آرومه، من چقدر خوشبختم! اگر با هسکل در ابتدای یادگیری احساس غربت میکنید، بی خیالش نشید: یادگیری هسکل مثل یادگیری برنامه نویسی برای اولین باره! باحاله و مجبورتون میکنه طور دیگه ای فکر کنید.


هسکل چیه؟
هسکل یک زبان برنامه نویسی تابعی خالصه. در زبانی مثل Python  دنباله ای از وظایف رو به کامپیوتر می دید و کامپیوتر اونها رو اجرا میکنه. و در حین اجرای کد، کامپیوتر می تونه وضعیت رو تغییر بده. مثلا شما مقدار a = 5 رو تعریف می کنید و بعد از یکسری عملیاتی که انجام میدید (a = a+۱)، ممکنه مقدار a تغییر کنه. همچنین ساختارهایی مثل حلقه های while  و for وجود داره تا بشه یک دستورالعمل رو چندین بار اجرا کرد.
اما برنامه نویسی تابعی خالص طور دیگه ای کار میکنه. به کامپیوتر نمیگید چی انجام بده، بلکه چیزی رو براش تعریف میکنید. مثلا می تونید بهش بگید که فاکتوریل یک عدد یعنی ضرب همه اعداد صحیح از یا تا عدد موردنظر و به عنوان یک تابع توصیفش کنید. در برنامه نویسی تابعی نمی تونید یک متغییری رو که تعریف کردید، بعدا به چیز دیگه تغییر بدید. اگر a=5 برای همیشه a=5
هسکل تنبله: هسکل توابع رو تا زمانی که نیاز نباشه که به شما نتیجه ای رو نمایش بده، اجرا نمی کنه (حداقل محاسبه تا جواب)!

چی نیاز دارید تا شیرجه برید؟
نصب حداقلی: ادیتور متنی + کامپایلر. ادیتورتون هر چی بود، بود! برای کامپایلر هم از GlasgowHaskell Compiler=GHC می تونید استفاده کنید که محبوبترین کامپایلر هسکله.
نصب کامل: Haskell Platform


مقالات دیگه:
http://tinyurl.com/hask3l
http://tinyurl.com/bsm7gcn

چند زبان برنامه نویسی تابعی دیگه:
LISP  اولین زبان برنامه نویسی تابعی است (1958) که با استفاده از لیستهای پیوندی (Linked List) به عنوان ساختار مرکزی دادهها ابداع شد.  پراستفاده ترین نسخه های LISP Common ، LISP و Schema هستند.
 ML که برگرفته از  Language Meta است، یک زبان برنامه نویسی تابعی با دامنه  ایستا (Static) است و تفاوت اصلی اش با زبان LISP در Syntax یا همون گرامرشه. شبیه زبان برنامه نویسی پاسکال است
#F، اف شارپ یک زبان برنامه نویسی شامل برنامه نویسی تابعی و برنامه نویسی شی گرای دستوری است که در چهارچوب Net. فعالیت میکنه. شاخه ای از ML بوده و بسیار با OCAML سازگاره.
« آخرین ویرایش: 11 فروردین 1392، 04:22 ب‌ظ توسط کیان »

آفلاین کیان

  • High Hero Member
  • *
  • ارسال: 2338
  • جنسیت : پسر
Haskell is like that girl
« پاسخ #17 : 12 فروردین 1392، 11:41 ب‌ظ »
لینک مستقیم دانلود کتاب معرفی شده در پست قبل: http://learnyouahaskell.com/learnyouahaskell.pdf

طرحی برای یادگیری هسکل: http://web.archive.org/web/20100416040111/http://www.alpheccar.org/en/posts/show/67

مطلبی انتقادی درباره هسکل:
http://www.xent.com/pipermail/fork/Week-of-Mon-20070219/044101.html

اگر اینترنت رو سرچ کنید می بینید که جبهه گیریهای زیادی بین طرفداران و مخالفان هسکل (برنامه نویسی تابعی) وجود داره.

نسخه آنلاین کتاب real world haskell از انتشارت اوریلی: http://book.realworldhaskell.org/read/
راهنمای با مزه هسکل: http://www.lisperati.com/haskell/hasktut.pdf
آموزش آنلاین: http://tryhaskell.org/
99 تا تمرین: http://www.haskell.org/haskellwiki/H-99:_Ninety-Nine_Haskell_Problems
چقدر تمرین؟ http://projecteuler.net/index.php?section=problems
۲۰ تمرین سطح متوسط:‌ http://blog.tmorris.net/20-intermediate-haskell-exercises/
ویکی هسکل: http://www.haskell.org/haskellwiki/How_to_write_a_Haskell_program
یک مقاله خواندنی: http://pragprog.com/magazines/2012-08/thinking-functionally-with-haskell
جستجوی کتابخانه های هسکل: http://www.haskell.org/hoogle/
« آخرین ویرایش: 13 فروردین 1392، 01:23 ق‌ظ توسط کیان »

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
کتابچه معرفی و آشنایی Haskell
« پاسخ #18 : 15 فروردین 1392، 01:39 ق‌ظ »
دوستان این هم کتابچه معرفی و آشنایی با هاسکل :

http://iran-bsd.ir/showthread.php?tid=309

با LaTeX نوشتم و وقت زیادی ازم گرفت. ممنون میشم فیدبک بدید.
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین سلمان م.

  • ناظر انجمن
  • *
  • ارسال: 4106
  • جنسیت : پسر
  • GNU Operating System - سیستم عامل گنو
خیلی کارت خوب بود. لذت بردم.
اگه راهت رو درست تشخیص بدی، می‌تونی به موفقیت‌های جهانی برسی.
« آخرین ویرایش: 15 فروردین 1392، 02:33 ق‌ظ توسط سلمان م. »

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4872
  • جنسیت : پسر
  • masoft قدیم
پاسخ : کتابچه معرفی و آشنایی Haskell
« پاسخ #20 : 15 فروردین 1392، 02:45 ق‌ظ »
ممنون میشم فیدبک بدید.
خوب به نظر من شاید مفیدترین کاری بوده که تا الان کردی. به صورت کامل نخوندم ولی این‌ها چیزهایی هست که به نظرم می‌رسه.

در مورد تلفظ Haskell، کلمه هسکل مناسب‌تر هستش. تلفظ Haskell به صورت /ˈhæskəl/ هستش و æ بیشتر صدای -َ داره تا صدای ا. (لینک)

در مورد امضا، اضافه کردن لفظ‌های عربی مثل «و من الله التوفیق» با توجه به تاریخچه شروع انجام این کار، بیشتر یک حرکت سیاسی بوده (و هست!) که عموما با هدف نشون دادن التزام اعتقادی و ... (و گاها سیاه‌نمایی) انجام می‌شده (و میشه!). شاید بهتر باشه ما خودمون رو قاطیش نکنیم! حتی این‌ها هم که در نظر نگیریم، بعد از ۱۰ صفحه فارسی نوشتن یک دفعه یک جمله به عربی نوشتن برای امضا کمی مسخره هستش.
« آخرین ویرایش: 15 فروردین 1392، 03:00 ق‌ظ توسط nixoeen »

آفلاین کیان

  • High Hero Member
  • *
  • ارسال: 2338
  • جنسیت : پسر
اگه راهت رو درست تشخیص بدی، می‌تونی به موفقیت‌های جهانی برسی.
دروغ سیزده!

ممنون میشم فیدبک بدید.
درخواست خودت برای فیدبک و نظرات عجیبه بقیه من رو که تصمیم گرفته بودم سکوت کنم به حرف میاره:
1. با این پست اسپمت تاپیک آموزشی خودت رو خراب کردی  ::)
2. برعکس nixoeen، به نظر من این کارت یکی از بدترین کارهایی بوده که تا حالا کردی! از کوبی بورد بگیر تا همین هسکل. هر هفته یک رنگ جدید گرفتی و یک کار تازه شروع کردی!
3. کامل خوندم. قلمت ضعیف بود. اگر منابعی رو می خونی و یا قبلا خوندی (در هر زمینه ای از کامپیوتر) از این به بعد لازمه در کنار نگاه فنی، به نگارش متنی که میخونی هم دقت کنی تا قواعد نوشتن ملکه ذهنت بشه! من پیشنهاد می کنم ترجمه یک کتاب رو شروع کنی fبه جای اینکه تجربه خودت رو در این سطح بنویسی!
4. می تونستی لینک پی دی اف رو مستقیم بذاری به جای اینکه مجبورمون کنی یک راه اضافی بریم!
5. اولین بخش متن نشون دادی که هنوز درک درستی از هسکل نداری: "هسکل برای پردازش روی اعداد ساخته شده است"
6. متن رو برای کی نوشتی؟‌برای کاربرهای اوبونتو؟ خیلی ها ممکنه ندونند nano چیه!
7. بخش هسکل چه ویژگی هایی دارد باید توسعه پیدا کنه
8. برای نوشتن بخش «چه زبانهای دیگری عملکردی مشابه هاسکل دارند» باید بیشتر مطالعه کنی! کجا خوندی متلب و هسکل شیوه کارشون یکیه؟
9. لازم نیست تو متن اشاره کنی که مانند سایر محیطها (مثل MATLAB) این محیط هم فلان ویژگی رو داره. با این کار در نظر خواننده از قدرت ابزاری که معرفی میکنی کم می کنی
10. بخش پایان مطلب رو هم nixoeen توضیح دادند.
« آخرین ویرایش: 15 فروردین 1392، 11:11 ق‌ظ توسط کیان »

آفلاین keshavarz2440

  • Jr. Member
  • *
  • ارسال: 28
  • جنسیت : پسر
ممنون عزیز هم پست اولت عالی بود هم کتابچت.
یه نظر : حتی نظرات کودکانه و گاها از سرکینه و عقده رو هم جدی بگیر ;)

آفلاین سلمان م.

  • ناظر انجمن
  • *
  • ارسال: 4106
  • جنسیت : پسر
  • GNU Operating System - سیستم عامل گنو
لطفاً از ارسال پست‌هایی بحث برانگیز خودداری کنید.

آفلاین آرمان اسماعیلی

  • High Hero Member
  • *
  • ارسال: 2366
  • جنسیت : پسر
مثل اینکه از بس همه به قصد تخریب انتقاد کرده‌اند، دیگه مفهوم «انتقاد سازنده» از ذهن ملت پاک شده!
صفحه‌ی من در اینستاگرام: ‎‎@armanes92

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
نسخه جدید کتابچه Haskell اضافه شد
« پاسخ #25 : 19 فروردین 1392، 06:55 ب‌ظ »
نسخه جدید کتابچه اضافه شد! .

http://iran-bsd.ir/showthread.php?tid=309&action=lastpost

در این نسخه ظاهر کتابچه بهتر شده و در فهرست مطالب چنانچه روی یکی از عناوین کلیک کنید به بخش مربوطه هدایت میشید. (این است قدرت زی پرشین ;D ) .
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
چند IDE برای هسکل
« پاسخ #26 : 02 اردیبهشت 1392، 05:11 ب‌ظ »
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین fzerorubigd

  • Hero Member
  • *
  • ارسال: 758
  • جنسیت : پسر
  • گوگل دوست خوبیه، فقط باید ازش بپرسی
    • یادداشتهای بیت نیمسوز
تنها نکته ای که میتونم بگم اینه که برخلاف تصور هاسکل کاملا هم میتونه کاربردی باشه، مثلا xmonad با همین زبان نوشته شده. در حقیقت حتی زبان brainfuck هم میتونه کاربردی باشه به شرطی که مفهوم کاربرد رو بتونی درست براش تعریف کنی.

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
کامپایل برنامه  از سورس + دو مثال putStr افزوده شد!
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پست اول بروز و عملگرهای منطقی اضافه شد!
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود