我是Haskell的新手,一直在努力掌握基础知识。
假设我有以下列表y:
3:3:2:1:9:7:3:[]
我正在尝试找到一种方法来删除列表y中第一个出现的3。是否可以使用简单的列表理解实现?
我尝试过以下方法(该方法会从列表中删除所有实例):
deleteFirst _ [] = []
deleteFirst a (b:bc) | a == b = deleteFirst a bc
| otherwise = b : deleteFirst a bc
3:3:2:1:9:7:3
不是一个列表。你可能想表达的是[3,3,2,1,9,7,3]
,这是3:3:2:1:9:7:3:[]
的语法糖。 - Joachim BreitnerData.List.delete
,它被定义为deleteBy (==)
。如果你卡住了,可以随时在 Hackage 上查看源代码。 - David