Пусть S
и T
являются строки определяются соответственно следующим образом:Как подражать чему-то вроде «set intersection» и «set union» с строками Clojure (Script)?
;; S
A
B
C
;; T
B
C
D
Существуют аналогичные Clojure (сценарий) операции string-intersection
и string-union
(за неимением лучшего названия), которые удовлетворяют следующим?
(string-intersection S T)
;; =>
;; B
;; C
и
(string-union S T)
;; =>
;; A
;; B
;; C
;; D
Как вы можете видеть, string-intersection
уничтожило бы (на основе строка за строкой), не совпадающие строки (оставляя только те строки, которые соответствуют), в то время как string-union
имеет эффект объединения строк и игнорирование дубликатов.
ПРИМЕЧАНИЕ: Я использую clojurescript, но я думаю, что ответ обобщил бы и clojure.
Вы должны иметь возможность реализовать оба функционала на большинстве языков, разделив обе строки в строках, упорядочить их (если они неупорядочены) и слить. Стратегия слияния просто отличается для двух функций. – maraca