Clojure/შედარება

ვიკიწიგნებიდან

C-ს მსგავს ენებში, ფუნქციის გამოძახება, როგორც წესი, ასე გამოიყურება:

do_something_with(value1, value2)

Clojure-ში იგივე ფუნქციის გამოძახება ასე გამოიყურება:

(do-something-with value1 value2)

აი რაშია Clojure განსხვავებული:

  • ფრჩხილი იხსნება ფუნქციის სახელის მარცხნივ.
  • არა გვაქვს პარამეტრებს შორის არანაირი გამყოფი (მაგალითად, მძიმე).
  • მიღებულია, რომ სიტყვები ფუნქციის სახელში გაიყოს მოკლე ტირეებით.

არც ისე ბევრი განსხვავებაა.

აი როგორ გამოიყურება ორი რიცხვის შეკრება C-ს მსგავს ენაში:

value1 + value2

აქ კი მოყვანილია, თუ როგორ გამოიყურება ეს Clojure-ში:

(+ value1 value2)

ამ შემთხვევაში კიდევ ერთი განსხვავებაა, პლიუსის ნიშანი მოდის პარამეტრების წინ. C-ს მსგავს ენაში პლიუსის ნიშანო ოპერატორია. Clojure-ში კი ის მხოლოდ ფუნქციაა, სახელად ‘+’. Clojure არ ჰყოფს "ოპერატორის" და "ფუნქციის" ცნებებს, როგორც ამას აკეთებენ C-ს მსგავსი ენები. ყველაფერი, რაც არის ოპერატორი C-ს მსგავს ენაში, Clojure-ში უნდა წარმოდგენილი იყოს ფუნქციის სახით. თუ თქვენი საყვარელ C-ს მსგავს ენას გამოვაცლით ყველა ოპერატორს, მაშინ ორი მნიშვნელობის დამატება ასე შეიძლება რომ გამოიყურებოდეს:

add(value1, value2)

რადგანაც ახლა თქვენი C-ს მსგავსი ენა არ შეიცავს ოპერატორებს, ის სიმბოლოები, რომლებიც ადრე ოპერატორისთვის გჭირდებოდათ, შეიძლება გამოიყენოთ ფუნქციის სახელად. მაგალითად, ასე:

+(value1, value2)

ახლა ეს დიდად არ განსხვავდება Clojure-ს შესაბამისი გამოსახულებისგან:

(+ value1 value2)