کلوژر

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
کلوژر
Clojure
Clojure-icon.gif
گونه برنامه‌نویسی تابعی
منتشر شده در ٢٠٠٧
طراح(ها) ریچ هیکی
آخرین نسخه پایدار ١.٤  (۱۸ آوریل ۲۰۱۲؛ ۷۲۸ روز پیش)
تاثیر گرفته از لیسپ معمولی، ارلنگ، هسکل، پرولوگ، ام‌ال، اسکیم، جاوا
اجازه‌نامه پروانه همگانی اکلیپس
وب‌گاه clojure.org

کلوژر (به انگلیسی: Clojure) گویشی از زبان برنامه‌نویسی لیسپ است که توسط ریچ هیکی ایجاد شده است. این زبان، یک زبان همه‌منظوره تابعی است[۱].

کد کلوژر به بایت‌کد ماشین مجازی جاوا کامپایل می‌شود[۲]، و بنابراین می‌توانید از کتابخانه‌های جاوا استفاده کند.

برنامه‌نویسی هم‌روند[ویرایش]

اکثر زبان‌های مرسوم، ویژگی‌های پایه‌ای هم‌روندی، یعنی ریسمان‌ها و قفل‌ها را در اختیار می‌گذارند. زبان‌هایی مانند جاوا، تعدادی کتابخانه کمکی نیز برای کنترل هم‌روندی اضافه می‌کنند، ولی تغییری اساسی در چگونگی طراحی برنامه‌های همروند ایجاد نمی‌کنند، و تنها میزان کد مورد نیاز را کم می‌کنند[۳].

کلوژر به‌صورت اساسی از همه‌ی لحاظها متفاوت است. کلوژر ابزارهای اولیه، ریسمان و قفل، را در اختیار نمی‌گذارد. در عوض، مدل‌های برنامه‌نویسی هم‌روند در کلوژر کاملا متفاوت است بطوری‌که نیازی به ریسمان‌ها و قفل‌ها نیست[۳].

به علت اینکه داده‌ساختارهای اصلی زبان تغییرناپذیر هستند، می‌توان آن‌ها را بین ریسمان‌های اجرا به اشتراک گذاشت[۴].

مثال‌ها[ویرایش]

Hello World:

(println "Hello world!")

تعریف یک تابع:

(defn square [x]
  (* x x))

پیوند به بیرون[ویرایش]

منابع[ویرایش]