امروز دارم کتاب Programming erlang رو می خونم
سینتکسش یه مقدار پیچیدست . کلا هدف هم بیشتر اینه که اینو بخونم بعدش برم elixir :))
ولی به طور کلی خیلی جالبه . مثلا
QuickSort رو , اگر بخواین مدل رندومش رو نزنین و صرفا هر بار بیاین اولین عنصر ( یا حالا آخرین عنصر , فرقی نداره ) رو به عنوان محور در نظر بگیرید , پیاده سازیش پنج خطه کلا .
کلا سادگی خاصی توش هست , و از اون طرف چیزای جذابی هم داره
مثلا می تونین راحت یه کلاینت سرور بنویسین که اینا با هم در ارتباطن و کلاینت مثلا می تونه از سرور بپرسه که آقا تو فلان دایرکتوری چه فایلایی هست ؟ یا مثلا فلان فایل رو بخون محتویاتشو بده به من .
هر پروسس قشنگ یه pid یا همون process identifier داره که می تونین از این طریق باهاش در ارتباط باشین . و پروسسی که اینجا راجع بهش حرف می زنیم با پروسس سیستم عامل فرق می کنه . یه مفهومیه تو خود زبون که خیلی هم سبک تر از پروسس اصلی تو سیستم عامله .
و دلیل جذابیت این بحث پروسس ها اینه که چون همه چیز به نوعی تابعه , شما پروسس هاتون می تونن خیلی راحت سعی کنن همو تکمیل کنن و با هم در تعامل باشن . مثلا یه پروسسی یه تابعیو نداره ولی می دونه که فلان پروسس این تابعو داره . صداش می زنه می گه آقا لطفا فلان تابع رو برا من اجرا کن نتیجش رو هم بهم بگو :)) اونم می گه چشم .
و کلا زندگی رو سعی کرده راحت کنه :))
مفهومی داره به اسم pattern matching که خیلی کار رو راحت می کنه .
تقریبا با pattern matching حتی نیاز به if هم ندارین . حتی نیاز به for هم ندارین
(هر چند یه چیزایی مثل if خودشون وجود دارن ولی کلا حرف اینه که تقریبا به هیچ چیز خاصی نیاز نخواهید داشت)
و البته هنوز به جاهای اصلی قضیه نرسیدم .
در آینده ای نزدیک سعی می کنم بیشتر در این مورد بنویسم :))
درباره این سایت