Confused about javascript function returning multiple functions with many fat arrow

前端 未结 3 1891
攒了一身酷
攒了一身酷 2021-01-16 14:57

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

相关标签:
3条回答
  • 2021-01-16 15:25

    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)))

    0 讨论(0)
  • 2021-01-16 15:43

    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)))

    0 讨论(0)
  • 2021-01-16 15:45

    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()));
    
    0 讨论(0)
提交回复
热议问题