The official Haskell wiki discusses literally dozens of ways to produce a list of prime numbers, but the one that caught my attention the other day is not listed there. Its centerpiece is a fold of a recursively defined infinite list of infinite lists (lists are lazy in Haskell). In this post, I’ve documented my attempt to rewrite it in Scala using streams.
postsrants, angry tweets, comment threads hundreds of items long — the user community has unleashed quite some emotion onto JetBrains after the company’s decision to change the pricing model for its desktop products to 100% subscription-based. The news seems to have made the day for Eclipse guys, and at least one other commercial IDE vendor, though.
Scalaz, an open-source pure functional programming library for Scala, provides the EphemeralStream class that does not exhibit the memory leak issues inherent to the standard scala Stream. However, it carries its own set of problems: memory overheads, performance penalties, and application disk footprint increase.
Infinite Scala streams should be marked “not for production use”, even though you can get away with breaking most of the rules listed in Part I.
The standard Scala
Stream class is essentially a lazy
List with memoization. However, memoization is undesirable when defining infinite data structures. It is possible to avoid memoization of streams by following a set of five rules, described in this first post in a 3-part series.
Match your FLAC files pathnames against a regular expression, then refer to capture groups when specifying iTunes field values.
is not so straightforward in today’s age of CDNs, widgets, and font embedded services.
If you have upgraded from Windows 7, you may need to also run
delmigprov.exe accompanying the standalone version of that update.
…let alone the main executable of a popular open source development tool.