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

Our Silicon Valley in Trinidad and Tobago

Girls in ICT Day Trinidad and Tobago

Using Estonia as an example in Trinidad and Tobago