【问题标题】:HASKELL --- Is there any function to remove an element in a list?HASKELL --- 是否有任何功能可以删除列表中的元素?
【发布时间】:2022-02-13 02:11:07
【问题描述】:

我的问题是我有一个列表,想删除其中的一些字符串。但是当我第一次删除时就可以了。但第二次,它删除了字符串但带回了第一个。 你知道我怎样才能避免这种情况吗? 谢谢

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"]

!!"ab" 回来了,我不想要这个!!谢谢

【问题讨论】:

  • 参见''如何“思考功能性”'' here
  • 试试:y=delete "ab" xdelete "cd" yx 是不可变的。函数不会更改变量。 delete 结果是一个新值,您可能希望使用不同的名称。
  • 什么是!!Here

标签: variables haskell immutability ghci remove-if


【解决方案1】:

请参阅''如何“思考功能”'' here。简而言之,xx 相同; delete "abc" x 返回 new 值,它不会更改现有的 x

如果你想引用这个 new 值,给它一个新的名字,像这样:

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

> x2 = delete "ab" x

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

【讨论】:

  • 谢谢。是的,我已经做到了,但您不能将这种技术用于 100 个元素的字符串。
  • 一个。是的你可以。湾。您可以改为创建一个 list 后续值。请参阅链接的答案。 :) 如果有疑问,请询问具体细节。
猜你喜欢
  • 1970-01-01
  • 2018-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 2016-02-12
  • 1970-01-01
  • 2015-04-25
相关资源
最近更新 更多