Using map And flatMap In Scala

2018-05-02

Consider two sets, A = {-2, -1, 0, 1, 2} and B = {0.5, 1, 1.5, 2.5, 4, 4.5, 5, 5.5} and a function          f: A => B

y = x ^ 2 + 0.5;  x is an element from set A and y corresponds to an element from set B, now we see that function f is applied to every element of set A but the result could be a subset of set B also.

So from the above text, we can draw the analogy that sets A and B can be seen as any collection in programming paradigm. Now what is “f”, so “f” could be seen as a function that takes an element from A and returns an element that exists in B, the point here to note is that, as scala promotes immutability whenever we apply map (or any other transformer) on some collection of type A, it returns a new collection of the same type with elements of type B. It would be helpful to understand it from the snippet below.

`val result: List[B] = List[A].map(f: A => B)`

So when a map operation is applied on a collection (here a List) of type A, with passing f as its argument it applies that function to every element of List of type A returns a new collection (again a List) of type B.

Selecting All Columns But One In Postgres

2018-05-15

Lukas Eder shows off a BigQuery feature which you can partially implement in Postgres: In BigQuery syntax, we could now simply write SELECT * EXCEPT rk FROM (...) t WHERE rk = 1 ORDER BY first_name, last_name Which is really quite convenient! We want to project everything, except this one column. But none of the […]

The Basics Of Lambda Calculus

2018-05-01

Kevin Sookocheff walks us through some of the basics of Lambda calculus: Functions are a bit more complicated. Michaelson states that a λ function serves as an abstraction over a λ expression, which isn’t that informative unless we take some time to understand what abstraction actually means. Programmers use abstraction all the time by generalizing from a […]