При использовании начальной загрузки приведенный ниже метод, без сомнения, является самым простым способом реализации адаптивного встраивания:
Документацию можно найти здесь: http://getbootstrap.com/components /#responsive-embed.
Не существует единого интерфейса для удаления элементов из всех типов структур данных Clojure, возможно, из-за различных характеристик производительности.
(disj #{:foo :bar} :foo) ; => #{:bar}
(dissoc {:foo 1 :bar 2} :foo) ; => {:bar 2}
(pop [:bar :foo]) ; => [:bar]
(pop (list :foo :bar)) ; => (:bar)
Они также работают (возвращая seq
):
(remove #{:foo} #{:foo :bar}) ; => (:bar)
(remove #{:foo} [:foo :bar]) ; => (:bar)
(remove #{:foo} (list :foo :bar)) ; => (:bar)
Это не работает для хэш-карт, потому что при итерации по карте вы получаете пары ключ / значение. Но это работает:
(remove (fn [[k v]] (#{:foo} k)) {:foo 1 :bar 2}) ; => ([:bar 2])
Посмотрите ссылку на Clojure, чтобы узнать о последовательностях . фильтр
и удалить
- это то, что вы ищете.
Как продолжение ответа Брайана Карпера. Это зависит от того, что вы будете делать с результатом. Если вы передаете результат чему-то, что хочет работать со всем набором данных (то есть распечатать его), идиоматично делать seq и использовать filter или remove для ленивого решения проблемы. Если, с другой стороны, вы изменяете структуру данных для сохранения для различных последующих применений, то создание seq на ней потеряет свои благоприятные характеристики обновления, поэтому в этом случае лучше использовать функцию обновления, специфичную для этой структуры данных.