I have problem with my cs homework.
I need to access the x
value of the function, but my codes is returning me an empty function instead of with the values
I have googled all the currying and closures, but none of them are advanced enough to help me solve my problem
const pair = (x, y) => f => f(x, y); // Do not edit this function
const head = p => //Answer here
console.log(head(pair(1,2))) // Do not edit this
my console keeps returning me functions
instead when I try all the combinations
function(a,b){return a;}
You could change head
function like this:
const pair = (x, y) => f => f(x, y);
const head = f => f(a => a)
console.log(head(pair(1,2)))
my console keeps returning me this instead
function(a,b){return a;}
Let's make this easier to read. In ES5, your code looks like this:
var pair = function(x, y) {
return function(f) {
return f(x, y);
}
};
var head = function(p) {
return function(a, b) {
return a;
}
};
You need to pass the function returned from head
to the function returned by pair(1, 2)
. So you need to swap which order you're calling the functions in:
console.log(pair(1, 2)(head()));
Not sure if I understand your question correctly or not but I guess you are trying to do this
const pair = (x, y) => f => f(x, y);
const head = (x, y) => x;
console.log((pair(1,2)(head)))
if not then this one from above is correct
const pair = (x, y) => f => f(x, y);
const head = f => f(a => a);
console.log(head(pair(1,2)))
来源:https://stackoverflow.com/questions/57736496/confused-about-javascript-function-returning-multiple-functions-with-many-fat-ar