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