我有一个这样的管道
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/