

@دژخیمهارپو رودر
مهندس نرم افزار در منطقه خلیج SF علاقه مند به PLT ، Linux و F / OSS
این پست اساساً به غیر هاسکلرها هدایت می شود. Haskell غالباً در برنامه های hackernews یا / r / ظاهر می شود ، اما محتوا معمولاً برخی از جنبه های برنامه نویسی عملکردی ، انواع قوی و خلوص را بشارت می دهد.
Haskell تمام آن موارد را مجسم می کند ، اما عملی بودن آن از برنامه نویسی عملکردی به شدت تایپ شده حاصل نمی شود ، بلکه از قدرت زمان اجرا ناشی می شود. زبانهای کاربردی دیگر به شدت تایپ شده مانند OCaml وجود دارد ، اما بسیاری از جنبه ها تقریباً بالغ نیستند. در اینجا برخی از ویژگیهای زمان اجرا را بررسی می کنم که به قدرت ، عملکرد و راحتی Haskell کمک زیادی می کنند.
پیاده سازی های متعدد Haskell (FLRC ، UHC ، JHC) وجود دارد ، با این حال ما به طور خاص از GHC استفاده خواهیم کرد که تا کنون بیشترین استفاده و قدرتمند است.
استثناهای ناهمزمان
تقریباً در همه زبانها موارد استثنایی توسط رشته اجرایی پرتاب می شوند. در C ++ پرتاب یک استثنا شبیه این است:
void doAction() {
if (1 == ) {
throw std::runtime_error("the impossible happened");
}
}
try {
doAction();
} catch (const std::exception& err) {
cout << err.what() << std::endl;
}
در Haskell * هر موضوع می تواند یک استثنا را برای موضوع دیگری ایجاد کند. بیایید یک نخ تخم ریزی کنیم و سپس فوراً آن را بکشیم …