Как получить доступ к двум параметрам в функциональном программировании - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть такая труба

pipe(
    getUserData,
    getLocationData,
    someFunctionThatNeedBothUserAndLocationData
)(input)

Мне нужна функция, которая будет иметь доступ как к данным пользователя, так и к данным о местоположении

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

Как я могу сделать что-то подобноев функциональном программировании?

1 Ответ

2 голосов
/ 11 ноября 2019

на самом деле невозможно с 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...