The last few tests got cut off...
...
(prn (comb {"a" "b", "c" "d"} {"e" "f", "g" "h"}))
(prn (comb {"a" "b"} {"c" "d", "e" "f"}))
(prn (comb {"a" "b", "c" "d"} {"e" "f"}))
(prn (comb "abc" "def" "ghi"))
On Sunday, July 22, 2018 at 2:21:24 PM UTC-5, Christian Seberino wrote:
>
>
> This really just reinforces what others have already said above that
>> Clojure's standard library doesn't make it easy for you to do something
>> inefficient
>>
>
> Do you at least agree it is at least debatable whether an intro class
> might benefit from avoiding efficiency concerns initially?
> I incorrectly assumed that that would require macros, but, it really only
> requires beginner friendly regular functions.
>
> For example, see this...
>
> (defn comb [& args]
> (let [comb_ (apply concat args)
> first_ (first args)]
> (cond (list? first_) comb_
> (vector? first_) (into [] comb_)
> (map? first_) (into {} comb_)
> (set? first_) (into #{} comb_)
> (string? first_) (apply str comb_))))
>
> Testing with these...
>
> (prn (comb [1 2] [3 4]))
> (prn (comb [1] [2 3]))
> (prn (comb [1 2] [3]))
> (prn (comb '(1 2) '(3 4)))
> (prn (comb '(1) '(2 3)))
> (prn (comb '(1 2) '(3)))
> (prn (comb #{1 2} #{3 4}))
> (prn (comb #{1} #{2 3}))
> (prn (comb #{1 2} #{3}))
> (prn (comb [1 2] [3 4] '(5 6)))
> (prn (comb '(1 2) '(3 4) [5 6]))
> (prn (comb {"a" "b", "c" "d"} {"e" "f", "g" "h"}))
>
> Gives these...
>
> [1 2 3 4]
> [1 2 3]
> [1 2 3]
> (1 2 3 4)
> (1 2 3)
> (1 2 3)
> #{1 4 3 2}
> #{1 3 2}
> #{1 3 2}
> [1 2 3 4 5 6]
> (1 2 3 4 5 6)
> {"a" "b", "c" "d", "e" "f", "g" "h"}
> {"a" "b", "c" "d", "e" "f"}
> {"a" "b", "c" "d", "e" "f"}
> "abcdefghi"
>
> Notice that with my comb (combine) function, I eliminated the need for
> str, prepend, append, conj, etc. Furthermore, comb gives
> the intuitive answer irrespective of efficiency.
>
> Is that so bad at least temporarily?
>
> cs
>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.