If you enjoy reading these exercises then please buy Crista’s book to support her work.
Style 7 – Infinite Mirror
This style is really all about recursions.
- All, or a significant part, of the problem is modelled using induction.
First, let’s get the list of stop words and put them in a set:
and then we will implement the counting logic using recursion:
I made some adjustments to Crista’s version here. In her version, wordFreqs is a global state that has been passed in as argument but the recursive count function returns nothing.
In my implementation, although I’m still using a mutable dictionary, it’s an implementation detail that is not exposed to the outside world. I could have used a Map here instead, but constantly updating a Map is really clumsy, plus Map performs really poorly in this type of use pattern.
Then we have another recursive functions, for printing out the word frequencies:
and then some code to tie everything together:
You can find all the source code for this exercise here.
I’m an AWS Serverless Hero and the author of Production-Ready Serverless. I have run production workload at scale in AWS for nearly 10 years and I have been an architect or principal engineer with a variety of industries ranging from banking, e-commerce, sports streaming to mobile gaming. I currently work as an independent consultant focused on AWS and serverless.
Here is a complete list of all my posts on serverless and AWS Lambda. In the meantime, here are a few of my most popular blog posts.
- Lambda optimization tip – enable HTTP keep-alive
- You are thinking about serverless costs all wrong
- Many faced threats to Serverless security
- We can do better than percentile latencies
- I’m afraid you’re thinking about AWS Lambda cold starts all wrong
- Yubl’s road to Serverless
- AWS Lambda – should you have few monolithic functions or many single-purposed functions?
- AWS Lambda – compare coldstart time with different languages, memory and code sizes
- Guys, we’re doing pagination wrong