پارادایم برنامهنویسی | تابعی |
---|---|
طراحی شده توسط | ریچ هیکی |
ظهوریافته در | ۲۰۰۷ |
انتشار پایدار | ۱٫۸ [۱]
/ ۱۹ ژانویه ۲۰۱۶ |
dynamic, strong | |
بنسازه رایانش | JVM, CLR, جاوااسکریپت |
پروانه | پروانه همگانی اکلیپس |
.clj, .cljs, .cljc, .edn | |
وبگاه | |
متأثر از | |
سی پلاسپلاس,[۲] سی شارپ, لیسپ معمولی, ارلنگ, هسکل, متمتیکا,[۳] امال, پرولوگ, اسکیم, جاوا, راکت,[۴] روبی[۵] | |
تأثیر گذاشته بر | |
الیکسیر, هایی, پیکسی, راین | |
کلوژر (به انگلیسی: Clojure) گویشی از زبان برنامهنویسی لیسپ است که توسط ریچ هیکی ایجاد شدهاست. این زبان، یک زبان همهمنظوره تابعی است[۶].
کد کلوژر به بایتکد ماشین مجازی جاوا کامپایل میشود[۷]، و بنابراین میتوانید از کتابخانههای جاوا استفاده کند.
اکثر زبانهای مرسوم، ویژگیهای پایهای همروندی، یعنی ریسمانها و قفلها را در اختیار میگذارند. زبانهایی مانند جاوا، تعدادی کتابخانه کمکی نیز برای کنترل همروندی اضافه میکنند، ولی تغییری اساسی در چگونگی طراحی برنامههای همروند ایجاد نمیکنند، و تنها میزان کد مورد نیاز را کم میکنند[۸].
کلوژر بهصورت اساسی از همهٔ لحاظها متفاوت است. کلوژر ابزارهای اولیه، ریسمان و قفل، را در اختیار نمیگذارد. در عوض، مدلهای برنامهنویسی همروند در کلوژر کاملاً متفاوت است بطوریکه نیازی به ریسمانها و قفلها نیست[۸].
به علت اینکه دادهساختارهای اصلی زبان تغییرناپذیر هستند، میتوان آنها را بین ریسمانهای اجرا به اشتراک گذاشت[۹].
(println "Hello world!")
تعریف یک تابع:
(defn square [x]
(* x x))