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

我有这样的烟斗

pipe(
    getUserData,getLocationData,someFunctionThatNeedBothUserAndLocationData
)(input)

我需要具有这样的功能,可以同时访问用户和位置数据

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

如何在函数式编程中做类似的事情?

zhongten 回答:如何在函数式编程中访问两个参数

实际上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>

,

我希望我还不晚。

const pipedFunction = pipe(
    getUserData,getLocationData,someFunctionThatNeedBothUserAndLocationData
)(input)

const getLocationData = (userData) => [user,location]

const someFunctionThatNeedBothUserAndLocationData = (arg) => {
  const [user,location] = arg;
}

const pipedFunction = pipe(
    getUserData,someFunctionThatNeedBothUserAndLocationData
)(input)

const getLocationData = (userData) => {user,location}

const someFunctionThatNeedBothUserAndLocationData = (arg) => {
  const {user,location} = arg;
}
本文链接:https://www.f2er.com/3125844.html

大家都在问