2015-09-13 05:28:39 +00:00
|
|
|
(ns koans.04-vectors
|
2014-05-02 21:37:11 +00:00
|
|
|
(:require [koan-engine.core :refer :all]))
|
2014-01-26 00:04:22 +00:00
|
|
|
|
2010-02-06 22:00:08 +00:00
|
|
|
(meditations
|
2018-03-15 12:27:15 +00:00
|
|
|
"Векторы в Clojure похожи на массивы"
|
2010-10-29 15:45:47 +00:00
|
|
|
(= __ (count [42]))
|
2010-02-06 22:00:08 +00:00
|
|
|
|
2018-03-15 12:27:15 +00:00
|
|
|
"Можно их содать из списка"
|
2010-09-29 00:18:47 +00:00
|
|
|
(= __ (vec '(1)))
|
2010-02-06 22:00:08 +00:00
|
|
|
|
2018-03-15 12:27:15 +00:00
|
|
|
"Или из ничего"
|
2013-03-04 23:06:46 +00:00
|
|
|
(= __ (vector nil nil))
|
2010-10-27 05:04:32 +00:00
|
|
|
|
2018-03-15 12:27:15 +00:00
|
|
|
"Число элементов — ваше дело"
|
2010-07-26 23:20:42 +00:00
|
|
|
(= [1 __] (vec '(1 2)))
|
2010-02-06 22:00:08 +00:00
|
|
|
|
2018-03-15 12:27:15 +00:00
|
|
|
"Добавляем элемент, помним что вектор «похож» на массив"
|
2013-03-04 23:10:04 +00:00
|
|
|
(= __ (conj [111 222] 333))
|
2010-02-06 22:00:08 +00:00
|
|
|
|
2018-03-15 12:27:15 +00:00
|
|
|
"Получаем первый элемент"
|
2010-09-29 00:18:47 +00:00
|
|
|
(= __ (first [:peanut :butter :and :jelly]))
|
2010-02-06 22:00:08 +00:00
|
|
|
|
2018-03-15 12:27:15 +00:00
|
|
|
"Последний элемент"
|
2010-07-26 23:20:42 +00:00
|
|
|
(= __ (last [:peanut :butter :and :jelly]))
|
|
|
|
|
|
2018-03-15 12:27:15 +00:00
|
|
|
"Да какой угодно элемент"
|
2010-07-26 23:20:42 +00:00
|
|
|
(= __ (nth [:peanut :butter :and :jelly] 3))
|
|
|
|
|
|
2018-03-15 12:27:15 +00:00
|
|
|
"Нарезаем вектор"
|
2010-11-04 13:01:34 +00:00
|
|
|
(= __ (subvec [:peanut :butter :and :jelly] 1 3))
|
|
|
|
|
|
2018-03-15 12:27:15 +00:00
|
|
|
"Коллекции сравниваются по их элементам"
|
2011-02-08 21:57:15 +00:00
|
|
|
(= (list 1 2 3) (vector 1 2 __)))
|