Haskell:我们是否有mapCons的捷径

Lar*_*nyu 1 haskell

我的意思是写这样一个函数:

mapCons x [] = [[x]]
mapCons x ys = map (x:) ys
Run Code Online (Sandbox Code Playgroud)

以便:

*> mapCons 'a' []
["a"]
*> mapCons 'a' ["cat", "dog"]
["acat","adog"]
Run Code Online (Sandbox Code Playgroud)

我们是否为mapCons提供了快捷方式或预定义函数?我试过Hoogle a - > [[a]] - > [[a]],但找不到理想的.

非常感谢.

Tho*_*son 11

不,我注意到map (x:)8个字符长,而输入mapCons x是9个字符.对于这样的特定操作(即非通用操作),找到或记住它们的成本和难度远远超过了使用它们的好处.想象一下,如果前奏或基础库定义了100,000个函数 - 不寒而栗!

  • 注意,当给出`[]`---时,OP的`mapCons`给出了不同的结果,这强化了你对非标准库中非常特殊的函数的观点. (4认同)