Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Some corrections and additions to lecture 03.

  • Loading branch information...
commit b9593701a83e1d8f8b7cace519b52c7dfa33bb59 1 parent d2357ce
@hrvladev hrvladev authored
Showing with 23 additions and 7 deletions.
  1. +23 −7 lectures/03-maps-sets-destruct.lecture
View
30 lectures/03-maps-sets-destruct.lecture
@@ -29,7 +29,7 @@
* Ще си затворим очите за първото домашно (и предизвикателство)
* От там нататък, нарушенията ще струват точки
* Първото нарушение е гратис, следващите са по една точка
-* В реда на нещата е кода ви да работи, но да получите 0 точки заради неспазване на конвенции
+* В реда на нещата е кодът ви да работи, но да получите 0 точки заради неспазване на конвенции
* Няма да коментираме неща, които не спазват конвенциите (освен "Това не спазва конвенциите")
* Същото важи и за проекта
* Capisce?
@@ -65,7 +65,7 @@
:annotate
(def song
{:name "Inertia Creeps"
- :album "Mezanine"
+ :album "Mezzanine"
:artist "Massive Attack"})
; map-овете са функции
@@ -172,7 +172,7 @@
(contains? primes 4) ; =>
(get primes 11) ; =>
- (get primes 11 :eh) ; =>
+ (get primes 19 :eh) ; =>
= Множества
== Като функции
@@ -213,7 +213,7 @@
= contains?
== Achtung!
-*Важно:* `contains?` не връща дали даден елемент се намира колекция. Връща дали съществува такъв индекс:
+*Важно:* `contains?` не връща дали даден елемент се намира в колекция. Връща дали съществува такъв индекс:
:annotate
(contains? [:foo :bar] :foo) ; =>
@@ -375,7 +375,8 @@
(def chunk (assoc chunk :self chunk))
* Това няма да сработи
-* `(chunk :self)` ще сочи към стария, map
+* Because immutability, that's why
+* `(chunk :self)` ще сочи към стара версия на chunk
* Въобще, няма как да го направите
= Равенство на колекции
@@ -516,7 +517,7 @@
* Чували сте да казваме "деструктивен let"
* Това не значи "със странични ефекти"
-* Така се наричат неща, които разлагат съставна структура на компонентите и
+* Така се наричат неща, които разлагат съставна структура на компонентите ѝ
* Мислете за destruct като обратното на struct
* ...каквото и да е struct :)
@@ -614,6 +615,21 @@ Clojure игнорина недостигащите/излишните елем
Обърнете внимание, че ключовете са втори.
= Деструктиране
+== вложени map-ове
+
+Разбира се, може да деструктира и вложени `мап`-ове.
+
+:annotate
+ (def track {:name "Acknowledgement"
+ :artist "John Coltrane"
+ :details {:album "A Love Supreme" :year 1965}})
+
+ (let [{name :name artist :artist {album :album year :year} :details} track]
+ (str "Now playing '" name "' by " artist " from '" album "'(" year ")")
+ ; =>
+ nil)
+
+= Деструктиране
== map-ове: стойности по подразбиране
Деструктирането може да задава стойности по подразбиране с `:or`:
@@ -647,7 +663,7 @@ Clojure игнорина недостигащите/излишните елем
= Деструктиране
== map-ове: :keys
-Ако искате да вземете елемента от хеша, които са съпоставени на ключови думи, може да го направите с `:keys`:
+Ако искате да вземете елементи от хеша, които са съпоставени на ключови думи, може да го направите с `:keys`:
:annotate
(defn play
Please sign in to comment.
Something went wrong with that request. Please try again.