Understanding and using Streams in JavaScript


Let's take a scenario from Mathematics, how would you model the infinite set of natural numbers? A list? An Array? Or a Stream? Even with infinite storage and time, lists and arrays do not work well enough for this scenario. Why? Assuming the largest possible integer an array can hold is x, then you've obviously missed out onx + 1. Lists, although not constrained by initialization, need to have every value defined before insertion.

Understanding Partial Application and Currying


In pure functional languages, functions are not 'invoked', rather a set of arguments is 'applied' to them. Now, if all the arguments are not passed in, then the function is being  'partially' applied. Partial application converts variadic functions (i.e. functions with multiple parameters) into functions of lesser arity by pre-specifying certain argument values.

Understanding Tail Recursion


The biggest advantage of using tail calls is that they allow you to do extensive operations without exceeding the call stack. This makes it possible to do a lot of work in constant space without running into out of memory exceptions; this happens because the frame for the currently executing function is re-used by the newly-executed function call.

Virtualization


One of the recent trends in IT is virtualization and it has caught on fast. There is hardly any person in computing that has not heard about it. Some are more familiar about its intricacies but everyone doesn't have to be an expert in this seemingly esoteric field to use it. Here is an introduction … Continue reading Virtualization

Cloud Computing, the future of computing?


Cloud computing has been touted to be the future of computing. Trends suggest a move towards web-based software applications and services. The claim has been further strengthened by the emergence of companies offering cloud-based services to computer users. (e.g. Google Docs). The underlying principle of cloud computing is to have servers offering access to computing … Continue reading Cloud Computing, the future of computing?