Daily Coding Problem 10MAY2020

I am subscribed to dailycodingproblem.com. From time to time I will share problems I attempt and have a discussion around it. My solution might have bugs or might not be the most efficient but it would be my attempt. Feel free to criticise.

Today's problem I got

This problem was asked by Jane Street.

cons(a, b) constructs a pair, and car(pair) and cdr(pair) returns the first and last element of that pair. For example, car(cons(3, 4)) returns 3, and cdr(cons(3, 4)) returns 4.

Given this implementation of cons:

def cons(a, b):
    def pair(f):
        return f(a, b)
    return pair

Implement car and cdr.

This was my solution in javascript. I am using the Javascript for Android app.

function cons(a,b) {
  return function pair(f) {
    return f(a,b);
  }
}

function car(pair) {
  function first(a,b) {
    return a;
  }
  return pair(first);
}

function cdr(pair) {
  function last(a,b) {
    return b;
  }
  return pair(last);
}

console.log(car(cons(3,4)));
console.log(cdr(cons(3,4)));

The language they used looks like Python. I am solving in javascript. Javascript is one of those languages that also supports closures. A closure is where a function is linked to its referencing environment.

Comments

Popular posts from this blog

Forty five

Who makes the best cheesecake?

Regulating OTT Services in Trinidad and Tobago

Writing with a purpose

What are humans