Good morning (?)!

If you've been enjoying our newsletter so far, it would really help us if you would forward this email to your friends

who might also enjoy our content.

Thank you.

Also thank you to everybody who registered for our first Secret Santa. You'll be receiving an email soon containing information about your targe... erm, I mean the person you are assigned to.

Now on to the articles!

Articles

(Nov 26) #functional-programming

Continuing the series on functional programming, Richard Wild in this 7th part talks about lazy evaluation, a method of many programming languages to defer evaluation at a later time on demand. In this article the author goes through a few examples of lazy evaluation in C# using Iterators and the yield keyword (what is mostly known as Generators in JavaScript).





(Nov 10) #postgresql

Probably the very first thing you learn when following a "Hacking" tutorial series is how to perform an SQL Injection. And for good reason. It's incredibly easy to do a quick test and the results could be devastating for the website. So naturally you'd want to protect yourself when you are on the opposite end. In this article Dimitri Fontaine talks about PostgreSQL's protocol facility that helps prevent such situations.





(Nov 03) #algorithms

We've talked about Tries in the past, they are a very useful data structure particularly when working with characters like words and sentences. While they have their downsides, in this article, Henry Robinson goes over the paper "The Adaptive Radix Tree: ARTful Indexing for Main-Memory Databases" which reduces memory usage of Tries by "adapting the data structure used for each node to the number of children that it needs to store."





Programming language of the day: Cedille."Cedille is an interactive theorem-prover and dependently typed programming language, based on extrinsic (aka Curry-style) type theory. This makes it rather different from type theories like Coq and Agda, which are intrinsic (aka Church-style). In Cedille, terms are nothing more than annotated versions of terms of pure untyped lambda calculus. In contrast, in Coq or Agda, the various typing annotations one writes are intrinsic parts of terms, and can be erased, if at all, only as an optimization under certain conditions, not in virtue of the definition of the type theory."



And that's it for today! Discuss this issue at our subreddit r/morningcupofcoding.

Did you like what you read? Let us know by clicking one of the links below.

Liked - Disliked

I hope you enjoyed reading the latest issue of Morning Cup of Coding. If you did, consider supporting it by becoming a patron (Patreon), buying me a coffee (PayPal), donating anonymously (coinbase), or purchasing an MCC mug (RedBubble); it helps me keep this going.

Cheers,

Pek