Filozoa Clojure Mateusz Dereniowski Instytut Informatyki Uniwersytetu Wrocªawskiego 15 lipca 2010
Wprowadzenie Clojure w skrócie Wieloplatformowo± aka JVM Standardy Czym jest JVM Co ª czy Clojure i JVM? Cechy j zyka Cechy Clojure Struktury agreguj ce Cechy j zyka funkcyjnego Cechy Javy Wspóªbie»no± Odej±cie od programowania obiektowego Programowanie czysto funkcyjne Niemodykowalny stan Stan a to»samo± Programowa pami transakcyjna
W skrócie Nowoczesny dialekt j zyka Lisp:
W skrócie Nowoczesny dialekt j zyka Lisp: twórca: Rich Hickey
W skrócie Nowoczesny dialekt j zyka Lisp: twórca: Rich Hickey pocz tek: 16 pa¹dziernika 2007
W skrócie Nowoczesny dialekt j zyka Lisp: twórca: Rich Hickey pocz tek: 16 pa¹dziernika 2007 paradygmat: funkcyjny, wieloparadygmatowy
W skrócie Nowoczesny dialekt j zyka Lisp: twórca: Rich Hickey pocz tek: 16 pa¹dziernika 2007 paradygmat: funkcyjny, wieloparadygmatowy typowanie: dynamiczne, silne
W skrócie Nowoczesny dialekt j zyka Lisp: twórca: Rich Hickey pocz tek: 16 pa¹dziernika 2007 paradygmat: funkcyjny, wieloparadygmatowy typowanie: dynamiczne, silne platforma: wieloplatformowy
Standardy Pierwszy przemysªowo wykorzystywanym dialekt Lispu?
Czym jest JVM Java Vitrual Machine: ±rodowisko uruchomieniowe dla programów, niezale»ne od platformy, stabilne, szybkie, uznane przez przemysª
Co ª czy Clojure i JVM? Clojure zostaª zaprojektowany od podstawy, aby dziaªa w ±rodowiski Javy,
Co ª czy Clojure i JVM? Clojure zostaª zaprojektowany od podstawy, aby dziaªa w ±rodowiski Javy, kompilowany bezpo±rednio do kodu bajtowego JVM,
Co ª czy Clojure i JVM? Clojure zostaª zaprojektowany od podstawy, aby dziaªa w ±rodowiski Javy, kompilowany bezpo±rednio do kodu bajtowego JVM, funkcje zdeniowane w Clojure mog by u»yte zamiennie z kodem Javy i vice versa.
Cechy Clojure REPL: Read, Eval, Print, Loop,
Cechy Clojure REPL: Read, Eval, Print, Loop, bogaty zestaw typów podstawowych (Lisp),
Cechy Clojure REPL: Read, Eval, Print, Loop, bogaty zestaw typów podstawowych (Lisp), struktury agreguj ce: listy, wektory, mapy, zbiory,
Cechy Clojure REPL: Read, Eval, Print, Loop, bogaty zestaw typów podstawowych (Lisp), struktury agreguj ce: listy, wektory, mapy, zbiory, makra (Lisp)
Cechy Clojure REPL: Read, Eval, Print, Loop, bogaty zestaw typów podstawowych (Lisp), struktury agreguj ce: listy, wektory, mapy, zbiory, makra (Lisp) wsparcie dla wielow tkowo±ci
Struktury agreguj ce Wszystkie wbudowane w Clojure struktury implementuj iteratory, comparatory, interfejsy kolekcji itp.
Cechy j zyka funkcyjnego funkcje obywatelami pierwszej klasy, domkni cia,
Cechy j zyka funkcyjnego funkcje obywatelami pierwszej klasy, domkni cia, trwaªe struktury danych
Cechy j zyka funkcyjnego funkcje obywatelami pierwszej klasy, domkni cia, trwaªe struktury danych rekursja zamiast p tli z efektami ubocznymi,
Cechy j zyka funkcyjnego funkcje obywatelami pierwszej klasy, domkni cia, trwaªe struktury danych rekursja zamiast p tli z efektami ubocznymi, leniwe sekwencje
Cechy j zyka funkcyjnego funkcje obywatelami pierwszej klasy, domkni cia, trwaªe struktury danych rekursja zamiast p tli z efektami ubocznymi, leniwe sekwencje list comprehensions
Trwaªe struktury danych
Cechy Javy dost p do bogatego zbioru bibliotek,
Cechy Javy dost p do bogatego zbioru bibliotek, proxy do interfejsów/class zdeniowanych w Javie,
Stan Mutable objects are the new spaghetti code. Rich Hickey
TDD Musi by co± na rzeczy, skoro przemysª tak silnie promuje TDD.
Stan obiektów Programi±ci j zyków obiektowych doskonale zdaj sobie spraw z niemo»no±ci kontrolowania stanu obiektów zawartych w swoich programach.
Zalety programowania czysto funkcyjnego czyste funkcje s ªatwe do uwspóªbie»niania,
Zalety programowania czysto funkcyjnego czyste funkcje s ªatwe do uwspóªbie»niania, czysto± funkcji zapewnia ich lepsze zrozumienie...
Zalety programowania czysto funkcyjnego czyste funkcje s ªatwe do uwspóªbie»niania, czysto± funkcji zapewnia ich lepsze zrozumienie......co w poª czeniu z kompozycyjnym charakterem programów daje lepsz mo»liwo± enkapsulacji poszczególnych fragmentów kodu, co zwi ksza poziom abstrakcji i reusability,
Zalety programowania czysto funkcyjnego czyste funkcje s ªatwe do uwspóªbie»niania, czysto± funkcji zapewnia ich lepsze zrozumienie......co w poª czeniu z kompozycyjnym charakterem programów daje lepsz mo»liwo± enkapsulacji poszczególnych fragmentów kodu, co zwi ksza poziom abstrakcji i reusability, kompozycja funkcji daje tak»e lepsz mo»liwo± ±ledzenia dziaªania programu,
Efekty uboczne Niemniej Clojure nie idzie w ±lady za Haskellem wymuszaj c bezwarunkow czysto± funkcji. Dzi ki przechowywaniu stanu programu w strukturach odpornych na wspóªbie»n rywalizacj, jest on zawsze bezpieczny i spójny.
Stan a to»samo± Dzi ki zastosowaniu trwaªych struktur danych ka»da "zmiana" stanu danej struktury wi»e si z utworzeniem nowego obiektu. Obiekty jako takie nie ulegaj zmianie.
Programowa pami transakcyjna atomowo± - wszystkie operacje zostaj wykonane, albo transakcja nie dochodzi do skutku.
Programowa pami transakcyjna atomowo± - wszystkie operacje zostaj wykonane, albo transakcja nie dochodzi do skutku. spójno± - transakcje s sprawdzane przed zaakceptowaniem,
Programowa pami transakcyjna atomowo± - wszystkie operacje zostaj wykonane, albo transakcja nie dochodzi do skutku. spójno± - transakcje s sprawdzane przed zaakceptowaniem, odizolowanie -»adna transakcja nie widzi efektów dziaªania innych transakcji podczas swojego wykonywania,