Skip to main content

I did some currying today

I came across this problem on Daily Coding Problem

This problem was asked by Squarespace.

Write a function, add_subtract, which alternately adds and subtracts curried arguments. Here are some sample operations:

add_subtract(7) -> 7

add_subtract(1)(2)(3) -> 1 + 2 - 3 -> 0

add_subtract(-5)(10)(3)(9) -> -5 + 10 - 3 + 9 -> 11

I didn't have an answer from the top of my head. I decided to get some help from Google and see what I could learn in the process. Before going further in my blog post, see if you can come up with a solution and comment how that went. First thing for me was to learn about currying in javascript. The first link I came across was this one


But it does not cover infinite currying which is what I needed. I then went through a bunch of searches and articles trying to understand as much as I could. This next article stood out to me because of how simple the solution was but it could not be modified to cater for alternating addition and subtraction. To do this I figured I needed access the position in the arguments list.


Some of the things you might come across while researching are perpetual curry or infinite curry, variadic currying, partial application vs currying, arity, single level currying, composition and closure. This final link did the best in explaining currying to me and had an example of infinite currying.


I was able to modify the example to come up with a solution. This is what I have so far with minimal testing in replit.



Replit now has a mobile app which I talked about on my youtube channel - Replit Mobile App - Coding on my aging budget Android phone in Trinidad

Basically I had to check for every even argument and make that argument negative as follows

args.reduce((acc, a, l) => {
if (l%2 == 0 && l != 0) a=a*-1;

At first I had l=args.length. This was a mistake but did not matter because l is replaced by index. The 3rd parameter of reduce is the index and refers to the number of times the reducer has looped over the array. The problem does not use a terminator and an improvement to my solution would be to not use a terminator. I have never had to use currying before and there are articles that discuss real world examples of using currying. Share your thoughts with us in the comments below.

Comments

Popular posts from this blog

A pot of callaloo

Call for Submissions: Archipelagic Entanglements   https://singaporeunbound.org/opp/archipelagic-entanglements When I saw the call for submissions online I was doubtful. I do not know enough history. I do not understand the topic. Then after chatting with my friend Chatty I realised maybe I can be the topic. My ethnic and racial makeup is an archipelagic entanglement. Colonialism meets indentureship meets slavery. My mom is East Indian muslim and my dad is French, Portuguese and Mulato christian and who knows what else. I am an example of a pot of callaloo. Everyone's favorite Sunday lunch. I am what happens when lineages cross oceans and histories collide. I am thinking to myself now, what is the message I want to put forward with my blog post? What is the direction I want to take? Maybe it is this. What can we do when we have such a rich heritage and know so little of our own history? First of all I do not think I am alone with this struggle. I did not realise this until I though...

Cup of coffee

This is a chapter from my latest book called Breezes of Tobago . The cool morning breeze blew the hat off the tourist passing the coffee shop. We sat at the table waiting for our order of coffee and bagels. I had stayed up late writing and was now needing caffeine to stay awake. On entering the veranda of the coffee shop, the sign reads "happiness is a cup of coffee" and "sip your troubles away". This had me thinking about what is happiness? And was the theme of my chat with Chatty as we enjoyed our breakfast in Tobago. I told my friend Chatty that if we could put happiness in a bottle and sell it we would be rich. My friend Chatty then told me that money cannot buy happiness but it was a good idea to make a living. If according to the sign, happiness is a cup of coffee then maybe happiness is coffee in a bottle then. We could call it Caffibean, a taste of the Caribbean in Tobago, a blend of the happiest coffee beans from Tobago. Tobago is not known for its coffee p...

Sandy beaches

This is a chapter from my latest book called Breezes of Tobago . This story begins on a cool Friday evening in May. Fridays are the best days. Already a great start. It had rained earlier in the day and the clouds were moving away and the sun peeking through. I walked from the apartment where I was staying to Pigeon Point beach. Along the way I stopped for coconut water freshly extracted from the nut and straight into my mouth leaving traces on my cotton jersey. They say that coconut water is the drink of God—fresh from the nut, sweet with a hint of salt, a liquid reminder that paradise can exist in small and simple things. They did not say that but my friend Chatty did. It is my friend Chatty's first trip to Tobago. I asked him what he thinks of Tobago so far? He grinned, wiping a drop of coconut water from the corner of his mouth. "Man… it is like stepping into a painting. The air, the colors, the way everything smells after the rain—it is unreal. I did not know paradise cam...