ΊέΊέί£

ΊέΊέί£Share a Scribd company logo
ClojureΜύ–
Π΅ΡΡ‚ΡŒ Π»ΠΈ Тизнь послС Java
ClojureΜύ–
Π΅ΡΡ‚ΡŒ Π»ΠΈ Тизнь послС Java
Ruby
PHP
Scala
Python
Javascript
Go
...
...
ΠŸΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹
Declarative
SQLDatalog
Prolog
Logic
Functional
ML
Lisp
CLOS
Object-Oriented
Java
C++
C
Pascal
Procedural
Bash
Imperative
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Clojure
β€’ Π―Π·Ρ‹ΠΊ ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния

β€’ ЗапускаСтся Π½Π° JVM 

β€’ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Lisp

β€’ Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ многопоточности
Π‘ΠΈΠ»ΡŒΠ½Ρ‹Π΅ стороны
β€’ ДинамичСская Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° (REPL)

β€’ Π˜ΠΌΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

β€’ Lisp (compact, code-as-data, macros)

β€’ Concurrency (atoms, software transactional memory)

β€’ ВыполняСтся Π½Π° JVM (access to the java ecosystem)
* https://leonid.shevtsov.me/post/companies-that-are-using-clojure/
Clojure Basics
ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹
"Hello" ;string
1 ;int
1.2 ;float
false ;boolean
[1 2 3] ;vector
(1 2 3) ;list
{:a 1 :b 2} ;hash-map
:abc ;keyword
#{1 2 3} ;set
!8
Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
(function-name arg1 arg2 arg3)
Имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ макроса
АргумСнты
s-expression
Functions
(str "Hel" "lo") ; => "Hello"
(+ 1 1) ; => 2
(- 2 1) ; => 1
(* 1 2) ; => 2
(/ 2 1) ; => 2
(= 1 1) ; => true
(= 2 1) ; => false
(< 1 2) ; => true
(> 3 2 1) ; => true
(and true false) ; => false
(or true false) ; => true
(if (> 1 2)
"good"
"bad") ; => "bad"
Functions
(map inc [1 2 3]) ; => (2 3 4)
(filter even? [1 2 3 4]) ; => (2 4)
(reduce + [1 2 3]) ; => 6



(concat [1 2] [3 4]) ; => (1 2 3 4)
(conj [1 2] 3) ; => [1 2 3]
(assoc {:a 1} :b 2) ; => {:a 1 :b 2}
(dissoc {:a 1 :b 2} :b) ; => {:a 1}
Functions
(defn say-hello [name]
(str "Hello " name))
(say-hello "World") ; => "Hello World"
(map (fn [a] (* a a))
[1 2 3 4]) ; => (1 4 9 16)
Functions
( -> some-value
(coerce)
(validate)
(save))
(save (validate (coerce some-value)))
Macros
(defmacro infix
[infixed]
(list (second infixed)
(first infixed)
(last infixed)))
(infix (1 + 1)) ; => 1
Macros
Vars and Bindings
(def word "hi")
(def n 3)
(repeat n word) ; => ("hi" "hi" "hi")
(let [a 2
b 3]
(+ a b)) ; => 5
Java Interoperation
(import java.util.Date)
(Date.) ; => <a date object>
(.getTime (Date.)) ; => 1534589618419
(System/currentTimeMillis) ; => 1534589705587
Live Coding
Learn Clojure
β€’ braveclojure.com

β€’ clojurecourse.by
Ad

Recommended

PDF
Reform: ΠΏΡƒΡ‚ΡŒ ΠΊ Π»ΡƒΡ‡ΡˆΠ΅ΠΌΡƒ ORM
Badoo Development
Μύ
PDF
2014-11-01 03 Николай Π›ΠΈΠ½ΠΊΠ΅Ρ€. Open your clojure
ОмскиС ИВ-субботники
Μύ
PDF
"ΠŸΠΎΡ‡Π΅ΠΌΡƒ язык Lua β€” это интСрСсно?", Ник Π—Π°Π²Π°Ρ€ΠΈΡ†ΠΊΠΈΠΈΜ†, (Mail.ru Group)
Badoo Development
Μύ
PDF
ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° 10M OAuth Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π½Π° Tarantool / Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ ΠŸΠ΅Ρ€Π΅ΠΏΠ΅Π»ΠΈ...
Ontico
Μύ
PDF
12 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования Redis β€” Π² Tarantool (АлСксандр ΠšΠ°Π»Π΅Π½Π΄Π°Ρ€Π΅Π², ΠšΠΎΠ½ΡΡ‚Π°Π½...
Ontico
Μύ
PPT
БыстрыС конструкции Π² Python - ОлСг Шидловский, Python Meetup 26.09.2014
Python Meetup
Μύ
PDF
Π‘Ρ‚Π°ΠΆΠΈΡ€ΠΎΠ²ΠΊΠ° 2016-07-14 02 Π•Π²Π³Π΅Π½ΠΈΠΈΜ† ВарасСнко. JavaScript
SmartTools
Μύ
PDF
ECMAscript harmony
FDConf
Μύ
PDF
JS Fest 2019. Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Агафонкин. Быстро ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: алгоритмичСскоС ΠΌΡ‹ΡˆΠ»Π΅Π½...
JSFestUA
Μύ
PDF
Π”ΠΎΠΊΠ»Π°Π΄ Антона ΠŸΠΎΠ²Π°Ρ€ΠΎΠ²Π° Π½Π° Tarantool Meetup. "Tarantool Π² Badoo: Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ исто...
Badoo Development
Μύ
PDF
ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° совмСстного использования Lua ΠΈ C Π² opensource спам-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π΅ Rspamd /...
Ontico
Μύ
PDF
Clojure #2 (2014)
Alexander Podkhalyuzin
Μύ
PDF
ИспользованиС Tarantool для хранСния Ρ‡Π°Ρ‚ΠΎΠ² ΠΈ Π»Π΅Π½Ρ‚ Π΄Ρ€ΡƒΠ·Π΅ΠΉ (ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΈΠ½ Осипов)
Ontico
Μύ
PDF
Clojure #1
Alexander Podkhalyuzin
Μύ
PDF
Tarantool: ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ 
1,5 ΠΌΠ»Ρ€Π΄ запросов Π² сутки?
tfmailru
Μύ
PDF
Python&Printer / АндрСй ΠŸΡƒΡ‡ΠΊΠΎ / penta.by
Python Meetup
Μύ
PDF
Caching data outside Java Heap and using Shared Memory in Java
Andrei Pangin
Μύ
PDF
Π₯ΠΎΡ‡Ρƒ Π·Π½Π°Ρ‚ΡŒ, сколько ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… посСтитСлСй Π±Ρ‹Π»ΠΎ Π½Π° ΠΌΠΎΡ‘ΠΌ сайтС Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ...
Ontico
Μύ
PDF
"Π”Π΅ΠΏΠ»ΠΎΠΉ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€" ΠœΡƒΡ€Π°Ρ‚ Кабилов (Avito)
AvitoTech
Μύ
PDF
Kubernetes Π² Avito - Π•Π²Π³Π΅Π½ΠΈΠΉ Ольков
AvitoTech
Μύ
PDF
АндрСй Π”Ρ€ΠΎΠ·Π΄ΠΎΠ² "Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… rest api Π½Π° tarantool"
Tanya Denisyuk
Μύ
PDF
Scala on android
Valeriya Atamanova
Μύ
PDF
PostgreSQL: практичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ SQL-запросов / Иван Π€Ρ€ΠΎΠ»ΠΊΠΎΠ² (Po...
Ontico
Μύ
PDF
Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ json-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Tarantool / АндрСй Π”Ρ€ΠΎΠ·Π΄ΠΎΠ² (Mail.ru Group)
Ontico
Μύ
PDF
Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ dtraceΒ» β€” Бтанислав ΠšΡ€Π°ΡΠ½ΠΎΡΡ€ΠΎΠ², Redsteep
e-Legion
Μύ
PDF
Something about Golang
Anton Arhipov
Μύ
PDF
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ сСриализации / Антон Π Ρ‹ΠΆΠΎΠ² (Qrator Labs)
Ontico
Μύ
PDF
ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ структур Π΄Π°Π½Π½Ρ‹Ρ… Π² NoSQL Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Tarantool
Alexandre Kalendarev
Μύ

More Related Content

What's hot (20)

PDF
JS Fest 2019. Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Агафонкин. Быстро ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: алгоритмичСскоС ΠΌΡ‹ΡˆΠ»Π΅Π½...
JSFestUA
Μύ
PDF
Π”ΠΎΠΊΠ»Π°Π΄ Антона ΠŸΠΎΠ²Π°Ρ€ΠΎΠ²Π° Π½Π° Tarantool Meetup. "Tarantool Π² Badoo: Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ исто...
Badoo Development
Μύ
PDF
ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° совмСстного использования Lua ΠΈ C Π² opensource спам-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π΅ Rspamd /...
Ontico
Μύ
PDF
Clojure #2 (2014)
Alexander Podkhalyuzin
Μύ
PDF
ИспользованиС Tarantool для хранСния Ρ‡Π°Ρ‚ΠΎΠ² ΠΈ Π»Π΅Π½Ρ‚ Π΄Ρ€ΡƒΠ·Π΅ΠΉ (ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΈΠ½ Осипов)
Ontico
Μύ
PDF
Clojure #1
Alexander Podkhalyuzin
Μύ
PDF
Tarantool: ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ 
1,5 ΠΌΠ»Ρ€Π΄ запросов Π² сутки?
tfmailru
Μύ
PDF
Python&Printer / АндрСй ΠŸΡƒΡ‡ΠΊΠΎ / penta.by
Python Meetup
Μύ
PDF
Caching data outside Java Heap and using Shared Memory in Java
Andrei Pangin
Μύ
PDF
Π₯ΠΎΡ‡Ρƒ Π·Π½Π°Ρ‚ΡŒ, сколько ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… посСтитСлСй Π±Ρ‹Π»ΠΎ Π½Π° ΠΌΠΎΡ‘ΠΌ сайтС Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ...
Ontico
Μύ
PDF
"Π”Π΅ΠΏΠ»ΠΎΠΉ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€" ΠœΡƒΡ€Π°Ρ‚ Кабилов (Avito)
AvitoTech
Μύ
PDF
Kubernetes Π² Avito - Π•Π²Π³Π΅Π½ΠΈΠΉ Ольков
AvitoTech
Μύ
PDF
АндрСй Π”Ρ€ΠΎΠ·Π΄ΠΎΠ² "Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… rest api Π½Π° tarantool"
Tanya Denisyuk
Μύ
PDF
Scala on android
Valeriya Atamanova
Μύ
PDF
PostgreSQL: практичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ SQL-запросов / Иван Π€Ρ€ΠΎΠ»ΠΊΠΎΠ² (Po...
Ontico
Μύ
PDF
Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ json-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Tarantool / АндрСй Π”Ρ€ΠΎΠ·Π΄ΠΎΠ² (Mail.ru Group)
Ontico
Μύ
PDF
Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ dtraceΒ» β€” Бтанислав ΠšΡ€Π°ΡΠ½ΠΎΡΡ€ΠΎΠ², Redsteep
e-Legion
Μύ
PDF
Something about Golang
Anton Arhipov
Μύ
PDF
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ сСриализации / Антон Π Ρ‹ΠΆΠΎΠ² (Qrator Labs)
Ontico
Μύ
PDF
ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ структур Π΄Π°Π½Π½Ρ‹Ρ… Π² NoSQL Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Tarantool
Alexandre Kalendarev
Μύ
JS Fest 2019. Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Агафонкин. Быстро ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: алгоритмичСскоС ΠΌΡ‹ΡˆΠ»Π΅Π½...
JSFestUA
Μύ
Π”ΠΎΠΊΠ»Π°Π΄ Антона ΠŸΠΎΠ²Π°Ρ€ΠΎΠ²Π° Π½Π° Tarantool Meetup. "Tarantool Π² Badoo: Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ исто...
Badoo Development
Μύ
ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° совмСстного использования Lua ΠΈ C Π² opensource спам-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π΅ Rspamd /...
Ontico
Μύ
Clojure #2 (2014)
Alexander Podkhalyuzin
Μύ
ИспользованиС Tarantool для хранСния Ρ‡Π°Ρ‚ΠΎΠ² ΠΈ Π»Π΅Π½Ρ‚ Π΄Ρ€ΡƒΠ·Π΅ΠΉ (ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΈΠ½ Осипов)
Ontico
Μύ
Tarantool: ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ 
1,5 ΠΌΠ»Ρ€Π΄ запросов Π² сутки?
tfmailru
Μύ
Python&Printer / АндрСй ΠŸΡƒΡ‡ΠΊΠΎ / penta.by
Python Meetup
Μύ
Caching data outside Java Heap and using Shared Memory in Java
Andrei Pangin
Μύ
Π₯ΠΎΡ‡Ρƒ Π·Π½Π°Ρ‚ΡŒ, сколько ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… посСтитСлСй Π±Ρ‹Π»ΠΎ Π½Π° ΠΌΠΎΡ‘ΠΌ сайтС Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ...
Ontico
Μύ
"Π”Π΅ΠΏΠ»ΠΎΠΉ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€" ΠœΡƒΡ€Π°Ρ‚ Кабилов (Avito)
AvitoTech
Μύ
Kubernetes Π² Avito - Π•Π²Π³Π΅Π½ΠΈΠΉ Ольков
AvitoTech
Μύ
АндрСй Π”Ρ€ΠΎΠ·Π΄ΠΎΠ² "Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… rest api Π½Π° tarantool"
Tanya Denisyuk
Μύ
Scala on android
Valeriya Atamanova
Μύ
PostgreSQL: практичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ SQL-запросов / Иван Π€Ρ€ΠΎΠ»ΠΊΠΎΠ² (Po...
Ontico
Μύ
Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ json-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Tarantool / АндрСй Π”Ρ€ΠΎΠ·Π΄ΠΎΠ² (Mail.ru Group)
Ontico
Μύ
Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ dtraceΒ» β€” Бтанислав ΠšΡ€Π°ΡΠ½ΠΎΡΡ€ΠΎΠ², Redsteep
e-Legion
Μύ
Something about Golang
Anton Arhipov
Μύ
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ сСриализации / Антон Π Ρ‹ΠΆΠΎΠ² (Qrator Labs)
Ontico
Μύ
ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ структур Π΄Π°Π½Π½Ρ‹Ρ… Π² NoSQL Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Tarantool
Alexandre Kalendarev
Μύ

ClojureΜύ– Π΅ΡΡ‚ΡŒ Π»ΠΈ Тизнь послС Java