Thank you! On Thursday, March 30, 2017 at 11:34:58 PM UTC+8, José Valim wrote: > > The cost of the operation is O(m * n). It doesn't matter the operands. If > the left side has three elements and the right has two, you need to > traverse the left side two times, resulting in (3 * 2) operations > altogether. If you reverse, you need to traverse the left side three times, > which results in (2 * 3). > > Plus we cannot know which list is shorter since calculating the length of > the list is linear itself. If you know which one is shorter or you know the > elements to delete, then you can use List.delete/2. > > Using -- in some cases is fine but, if you are performing it multiple > times, then you do likely need a better data structure. > > > *José Valim* > www.plataformatec.com.br > Skype: jv.ptec > Founder and Director of R&D > > On Fri, Mar 31, 2017 at 12:24 AM, <[email protected] <javascript:>> > wrote: > >> hi, elixir team! >> >> I'm using elixir in some projects, and I often using `--` operator like >> this: >> ``` >> list1 = [1, 2, 3] >> list2 = [2, 4] >> >> new_list = list1 -- list2 >> ``` >> >> I think is the easiest way to find the element in list1 and not in list2. >> But it seems very expensive, as this article said: >> >> http://erlang.org/doc/efficiency_guide/commoncaveats.html#id64604 >> >> Could we add a function like `List.minus` or `List.remove` to do this >> operation in a better way? >> >> -- >> You received this message because you are subscribed to the Google Groups >> "elixir-lang-core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/29f1a6c9-2329-464d-b45f-8669ba7dd254%40googlegroups.com >> >> <https://groups.google.com/d/msgid/elixir-lang-core/29f1a6c9-2329-464d-b45f-8669ba7dd254%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > >
-- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/ea8decde-5ad0-49ee-8ee6-81c5a68581b7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
