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

کلوژر
الگو برنامه‌نویسیتابعی
طراحی شده توسطریچ هیکی
ظهوریافته در۲۰۰۷؛ ۱۳ سال پیش (۲۰۰۷)
انتشار پایدار
۱٫۸ [۱]
۱۹ ژانویه ۲۰۱۶؛ ۴ سال پیش (۲۰۱۶-۰۱-19)
dynamic, strong
بن‌سازه رایانشJVM, CLR, جاوااسکریپت
پروانهپروانه همگانی اکلیپس
.clj, .cljs, .cljc, .edn
وبگاه
تأثیر گرفته از
سی پلاس‌پلاس,[۲] سی شارپ, لیسپ معمولی, ارلنگ, هسکل, متمتیکا,[۳] ام‌ال, پرولوگ, اسکیم, جاوا, راکت,[۴] روبی[۵]
تأثیر گذاشته بر
الیکسیر, هایی, پیکسی, راین

Clojure Programming در ویکی‌کتاب (انگلیسی)

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

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

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

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

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

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

Hello World:

(println "Hello world!")

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

(defn square [x]
  (* x x))
 
ریچ هیکی در سان فرانسیسکو

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

منابعویرایش

  1. "Index of /maven2/org/clojure/clojure/1.8.0/". central.maven.org. 2015-06-30. Archived from the original on 23 January 2016. Retrieved 2015-06-30.
  2. "Rich Hickey Q&A on Code Quarterly". Retrieved 2016-05-08.
  3. "Rich Hickey's Amazon Bookshelf of books that influenced Clojure". Retrieved 2016-05-08.
  4. Bonnaire-Sergeant, Ambrose (2012). A Practical Optional Type System for Clojure (Thesis). The University of Western Australia.
  5. "Clojure Programming" (PDF). Retrieved 2013-04-30.
  6. دولوپر ورکز آی‌بی‌ام - زبان برنامه‌نویسی کلوژر
  7. سایت کلوژر - میزبانی‌شده بر ماشین مجازی جاوا
  8. ۸٫۰ ۸٫۱ دولوپر ورکز آی‌بی‌ام - کلوژر و هم‌روندی
  9. سایت کلوژر - برنامه‌نویسی هم‌روند