Home > OS >  HASKELL --- Is there any function to remove an element in a list?
HASKELL --- Is there any function to remove an element in a list?

Time:02-13

My problem is I have a list and want to remove some strings in it. but when I remove the first time it's OK. but the second time, it removes the string but bring back the first one. do you know how I can avoid this? thank you

Prelude Data.List Data.Char> x = ["ab","cd","ef","gh"]

Prelude Data.List Data.Char> delete "ab" x

["cd","ef","gh"]

Prelude Data.List Data.Char> delete "cd" x

["ab","ef","gh"]

!!Here the "ab" came back and I don't want this!! thanks

CodePudding user response:

See ''How to "think functional"'' here. In short, x is the same x; delete "abc" x returns new value, it does not change the existing x.

If you want to refer to this new value, give it a new name, like this:

> x = ["ab","cd","ef","gh"]

> x2 = delete "ab" x

> delete "cd" x2
["ef","gh"]
  • Related