【发布时间】:2013-07-31 03:30:33
【问题描述】:
假设我有一个函数列表
functions = [f, g, h]
每一个类型为a -> a
我也有一个值列表,比如数字,但任何东西都应该在这里工作
vals = [1,2,3]
我想将functions中的每个函数都应用到vals中对应的值
我的第一反应是使用 lambda 和 zipWith 之类的:
zipWith (\f v -> f v) functions vals
但坦率地说,这看起来很丑陋,在 Haskell 这样的好语言中并不是我所期望的。功能应用功能听起来像是解决方案。有这样的事吗?我是否遗漏了什么并且有更好的解决方案来解决我的问题?实际上,我最终为 Project Euler 解决方案编写了这个构造。它有效,但我不喜欢它。
【问题讨论】:
标签: haskell higher-order-functions