برنامه نویسی کلوژر (clojure) چیست؟

برنامه نویسی کلوژر (clojure) چیست؟

برنامه نویسی کلوژر (clojure) چیست؟ کلوژر (به انگلیسی: Clojure) گویشی از زبان برنامه‌نویسی لیسپ است که توسط ریچ هیکی ایجاد شده‌است. این زبان، یک زبان همه‌منظوره تابعی است. کد کلوژر به بایت‌کد ماشین مجازی جاوا کامپایل می‌شود، و بنابراین می‌توانید از کتابخانه‌های جاوا استفاده کند. تا انتها این مقاله با ما همراه باشید…

کلوژر (clojure) چیست؟

کلوژر (به انگلیسی: Clojure) گویشی از زبان برنامه‌نویسی لیسپ است که توسط ریچ هیکی ایجاد شده‌است. این زبان، یک زبان همه‌منظوره تابعی است. کد کلوژر به بایت‌کد ماشین مجازی جاوا کامپایل می‌شود، و بنابراین می‌توانید از کتابخانه‌های جاوا استفاده کند. اکثر زبان‌های مرسوم، ویژگی‌های پایه‌ای هم‌روندی، یعنی ریسمان‌ها و قفل‌ها را در اختیار می‌گذارند. زبان‌هایی مانند جاوا، تعدادی کتابخانه کمکی نیز برای کنترل هم‌روندی اضافه می‌کنند، ولی تغییری اساسی در چگونگی طراحی برنامه‌های همروند ایجاد نمی‌کنند، و تنها میزان کد مورد نیاز را کم می‌کنند. کلوژر به‌صورت اساسی از همهٔ لحاظها متفاوت است. کلوژر ابزارهای اولیه، ریسمان و قفل، را در اختیار نمی‌گذارد. در عوض، مدل‌های برنامه‌نویسی هم‌روند در کلوژر کاملاً متفاوت است بطوری‌که نیازی به ریسمان‌ها و قفل‌ها نیست.به علت اینکه داده‌ساختارهای اصلی زبان تغییرناپذیر هستند، می‌توان آن‌ها را بین ریسمان‌های اجرا به اشتراک گذاشت

برخلاف جاوا اسکریپت و پایتون،Clojure شاید خیلی حتی بین برنامه نویسان هم نام شناخته شده‎ای نباشد. Clojure نوعی گویش از زبان برنامه نویسی Lisp است که تاریخ آن به 1950 بازمی‎گردد. عملکرد خاص این زبان با وظایف مختلف آن را به زبانی ایده‎آل برای برنامه نویسی تابعی تبدیل کرده است. مانند دیگر گوشی‎ههای Lisp، Clojure با کد مانند داده رفتار می‏کند. به این معنی که کد می‎تواند خودش را تغییر دهد. برخلاف دیگر لهجه‎های Lisp، Clojure روی پلتفرم جاوا اجرا می‎شود و در بایت‎کد JVM کامپایل شده است درنتیجه می‎تواند با کتابخانه‎های جاوا کار کند. برخلاف دیگر زبان‎های این لیست Clojure به طور کلی یک زبان برنامه نویسی تابعی است، به این معنی که تا حد امکان به خصوص در ساختار داده از عدم تغییرپذیری پیروی می‎کند. Clojure انتظار ندارد که همه‎ی برنامه‎ها از نظر ریاضی قابل اثبات باشند اما تا حد امکان از توابع خالص استفاده می‎کند.

 

مثال از برنامه نویسی کلوژر (clojure)

مثال Hello World

(println "Hello world!")

تعریف تابع

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

 

کلوژر (clojure) جزو پردرآمدترین زبان‌ های برنامه نویسی

به نمودار بالا توجه کنید. این نمودار پر درآمدترین زبان‌های برنامه‌ نویسی را در سطح جهان نشان می‌دهد. طبق گزارش Stackoverflow زبان‌های Clojure ،F# ،GO ،Scala ،Elixir از پر درآمدترین زبان‌های برنامه‌نویسی در سال ۲۰۱۹ در سطح دنیا بوده‌اند.

 

آیا Clojure زبان هوش مصنوعیست؟

“هوش مصنوعی” ابداع خود John McCarthy بود. زبان clojure هم که یکی از گویش های lisp محسوب میشه. پس کاملاً طبیعیه که ازش تو زمینۀ هوش مصنوعی زیاد استفاده بش، ولی به نظر من دلیل قدرت اصلی lisp (که باعث کاربردش تو هوش مصنوعی هم میشه) اینه که متکیه به حساب لاندا. اون چیزی که واقعاً شگفت انگیزه، lisp یا زبانهای برنامه نویسی مشابه دیگه نیستن، بلکه حساب لاندا ست. Haskell Curry معتقد بود زیرساخت تمام زبانهای طبیعی حساب لاندا ست. بعضی از ریاضیدانها معتقدن حساب لاندا در واقع همون زبان تفکره. حداقل اثبات شده که تمام ریاضیات و استدلالها رو میشه به وسیلۀ حساب لاندا (با قواعد واقعاً سادش) به طور خیلی دقیق بیان کرد.

 

ClojureScript چیست؟

ClojureScript نسخه‌ای از زبان برنامه‌نویسی Clojure است که در JavaScript کامپایل می‌شود و یک زبان برنامه‌نویسی فانکشنالِ پایدار و پویا با مجموعه‌ای غنی از دیتا استراکچرهای غیرقابل‌تغییر است. هدف اصلی از توسعهٔ این زبان، تسهیل فرآیند ساخت اپلیکیشن‌های پیچیده با یک طراحی ساده است.

در واقع، کلوژراسکریپت یک Dialect از زبان برنامه‌نویسی Lisp است و یک زبان همه‌کاره با تأکید بر شیوۀ برنامه‌نویسی فانکشنال (تابع‌محور) است که در جاوااسکریپت اجرا می‌شود (در اکوسیستم زبان برنامه‌نویسی Lisp، اکثر زبان‌هایی که از سینتکس دستورات و مفهوم مشابه این زبان استفاده می‌کنند به عنوان یک Dialect از این زبان در نظر گرفته می‌شوند.) کلوژراسکریپت یک زبان مدرن، فانکشنال و مبتنی بر دیتا اسکتراکچرهای غیرقابل‌تغییر با یک لایبرری استاندارد عالی است که باندل‌های جامع و یکپارچۀ جاوااسکریپت را کامپایل می‌کند.

همچنین کلوژراسکریپت بر اساس زبان برنامه‌نویسی Clojure، ترکیبی از ظرافت و قابلیت Metaprogramming زبان Lisp را به اکوسیستم جاوااسکریپت اضافه می‌کند (اصلاح Metaprogramming یک روش برنامه‌نویسی است که در آن برنامه‌های کامپیوتری توانایی پردازش سایر برنامه‌ها را به عنوان داده‌های خود دارند؛ این بدان معنا است که یک برنامه را می‌‌توان برای خواندن، تولید، آنالیز یا تبدیل به برنامه‌‌های دیگر طراحی کرد. حتی یک برنامۀ در حال اجرا می‌تواند در صورت نیاز سورس‌کد خود را تغییر دهد!) به عنوان نمونه سورس‌کد این زبان داریم:

(defn transform* [person]
   (-> person
      (assoc :hair-color :gray)
      (update :age inc)))

(defn calculate* []
   (->> (range 10)
        (filter odd? ,,,)
        (map #(* % %) ,,,)
        (reduce + ,,,)))

(as-> [:foo :bar] v
  (map name v)
  (first v)
  (.substring v 1))

 


 

 

مشاهده جلسات قبل معرفی زبان های برنامه نویسی

  1. زبان برنامه نویسی سی و سی پلاس پلاس
  2. معرفی زبان برنامه نویسی پایتون
  3. Ruby چیست؟ بررسی زبان برنامه نویسی روبی
  4. زبان برنامه نویسی PHP چیست؟
  5. زبان برنامه نویسی Lua چیست؟
  6. کاتلین (Kotlin) چیست؟ توضیح زبان برنامه نویسی کاتلین
  7. Ada چیست؟ معرفی زبان برنامه نویسی Ada
  8. زبان برنامه نویسی COBOL چیست؟ شرح کامل COBOL
  9. معرفی زبان برنامه نویسی Cython
  10. زبان برنامه نویسی Elixir چیست؟ معرفی کامل Elixir (الیکسیر)
  11. کاملترین معرفی زبان برنامه نویسی Groovy
  12. زبان برنامه نویسی Rust چیست؟ کاملترین معرفی زبان برنامه نویسی Rust
  13. زبان برنامه نویسی Scala چیست؟ معرفی،ویژگی ها و کاربرد Scala
  14. معرفی زبان برنامه نویسی Haskell
  15. معرفی زبان برنامه نویسی Lisp (لیسپ)
  16. معرفی زبان برنامه نویسی Prolog
  17. کاملترین معرفی زبان برنامه نویسی جاوا
  18. معرفی کامل زبان برنامه نویسی Perl و نمونه کد Perl
  19. WinJS چیست؟ معرفی کتابخانه WinJS
  20. SignalR چیست؟
  21. Orchard چیست؟
  22. انگولار جی اس چیست؟ معرفی کامل فریم ورک متن باز Angular JS
  23. معرفی زبان اسکریپتی Sass
  24. ExpressJS چیست؟ همه چیز راجب ExpressJS
  25. فلاتر چیست؟ همه چیز راجب به برنامه نویسی فلاتر در سال 2020
  26. فریم ورک آیونیک چیست؟ (ionic سکو توسعه موبایل)
5/5 - (2 امتیاز)

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.

پکیج آموزش صفر تا صد طراحی فروشگاه اینترنتی بدون کدنویسی

دسته بندی موضوعات

آخرین محصولات فروشگاه

مشاهده همه

نظرات

بازخوردهای خود را برای ما ارسال کنید

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.