javascript - 如何在函数式编程中访问两个参数

标签 javascript functional-programming

我有一个这样的管道

pipe(
    getUserData,
    getLocationData,
    someFunctionThatNeedBothUserAndLocationData
)(input)

我需要一个可以访问用户和位置数据的函数,如下所示

function someFunctionThatNeedBothUserAndLocationData(user, location){
    // do something
}

我怎样才能在函数式编程中做类似的事情?

最佳答案

对于pipe来说不可能,因为后续函数是一元的(它们将前一个函数的结果作为参数)。我认为收敛函数在这里很有帮助!

const log = (user, location) => {
  console.log(`${user.name} is in ${location}`);
};


const getUserData = () => ({ name: 'Giuseppe' });
const getUserLocation = () => 'Bologna';

R.converge(log, [
  getUserData,
  getUserLocation,
])();
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js" integrity="sha256-xB25ljGZ7K2VXnq087unEnoVhvTosWWtqXB4tAtZmHU=" crossorigin="anonymous"></script>

关于javascript - 如何在函数式编程中访问两个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58797340/

相关文章:

javascript - 浏览器支持 getBoundingClientRect 的宽度和高度属性吗?

javascript - DynamoDB DeleteItem 显然不起作用 - 没有给出错误

javascript - 如何将 onclick 事件附加到 XTemplate 元素 extjs?

functional-programming - 为什么 x = x +1 在 Elixir 中有效?

c# - 在 C# 中是否有此迭代算法的性能更好的函数版本?

javascript - 服务器发送事件有哪些好的用例

javascript - 如何在javascript的url中传递参数?

Haskell 高阶函数。传递两个函数作为参数。

scala - 状态 monad - 调整仅适用于部分状态的功能?

scala - Scala 中的不可变数据结构