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

How was my day?

What makes us beautiful?

Are zebras black with white stripes or white with black stripes?

What is euouae?

What word has no meaning?