python - map() 作为类成员与 map() 作为独立函数?

标签 python haskell functional-programming kotlin map-function

<分区>

我刚刚发现映射列表在例如Python 和 Haskell 是这样完成的:

newlist = map(function, somelist)

例如Kotlin 和 Dart 是这样完成的:

newlist = somelist.map(function)

我想知道每种解决方案相对于其他解决方案有哪些优势? Python/Haskell 实现更“实用”,不是吗?

最佳答案

它与“功能更强大”没有任何关系,只是一种用法。

Haskell 没有方法,所以

newlist = map function somelist

是唯一的写法。

在 Python 中,map 不保留可迭代对象的结构,而是生成一个新列表 (Python2) 或一个新映射对象 (Python3)。它只是一个常规函数,可以将任何可迭代对象作为参数,因此它不会附加到特定对象。 (顺便说一句,map 并不是一个特别流行的函数,使用列表或生成器推导式被认为更“pythonic”)。

在 Kotlin 中,所有可迭代对象都实现了 map 方法。与在 Python 中它只是一个常规函数不同,它是一个常规(可重写)方法,并且按原样使用。

这里真正的区别是,在 Kotlin 中,我们可以用更优化的版本覆盖它,而在 Python 中我们不能。这可能更面向对象,但实际上并没有降低功能。

关于python - map() 作为类成员与 map() 作为独立函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50099765/

相关文章:

javascript - 具有函数式编程(纯路由)的 Express.js 服务器

python - 如何在不加载整个文件的情况下从 XLS 文件中获取工作表名称?

python - Django:有什么方法可以将连续的 model.save() 操作作为 1 个数据库请求执行?

python - 如何编写混淆矩阵

haskell - 如何编写这些函数以独立于类型 : Int vs Integer 的选择

javascript - 在javascript中过滤对象数组中的数组

javascript - 这是纯函数式的吗?在嵌套(类似闭包)函数中使用一个值

python - 文件打开 : Is this bad Python style?

haskell - 惰性交错包含在 IO monad 内的纯计算

haskell - react 香蕉中的推与拉