Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #2141

R

Ruminations of a Programmer

Personal blog · debasishg.blogspot.comprogrammingbusiness

Ruminations of a Programmer is a personal blog at debasishg.blogspot.com about programming and business. Since 2007, 35 different Hacker News readers have linked it 61 times, most often “The Thrush Combinator in Scala”. The last post was in 2017, but the archive is still widely read.

Visit the blog
61mentions?
0recommend?
35HN people?
2007–2022first – last linked?
Links on Hacker News per year · peak 17 in 2008

Too few sampled comments (10) to say how often HN recommends it.?

Why HN links it

HN commenters link Debasish Ghosh's blog as background on Clojure and functional programming, especially the thrush combinator, lazy evaluation and immutable data structures. The links are cited as references rather than praised.

Summarised by Claude from a sample of 10 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

A programmer's blog - will deal with everything that relates to a programmer. Occasionally, it will contain some humour, some politics and some sport news.

Most-linked posts?

  1. The Thrush Combinator in Scala
    3 people · 3 mentions · first linked 2009-09-28
  2. Thrush in Clojure
    2 people · 3 mentions · first linked 2010-04-12
  3. Laziness in Clojure
    2 people · 2 mentions · first linked 2010-05-10
  4. Grokking Functional Data Structures
    2 people · 2 mentions · first linked 2010-05-31

What Hacker News says?

  1. That's what languages with immutable data structures do. Internally they implement simple data structures (lists, arrays) with more complex ones not to get a performance hit. For example, they don't want to copy every byte every time they add or remove from a list. In ascending order of complexity http://theerlangelist.blogspot.com/2013/05/working-with-immu... http://concurrencyfreaks.blogspot.com/2013/10/immutable-…

    Comment linking /2010/05/grokking-functional-data-structures.html

    on “Ruby `reject!`”
  2. Submitted Grokking Functional Data Structures as a story · 41 points

    HN discussion
  3. That's basically what filter does in Clojure (and probably any other language with lazy evaluation): http://debasishg.blogspot.com/2010/05/laziness-in-clojure-so...

    Comment linking /2010/05/laziness-in-clojure-some-thoughts.html

    on “Understanding .NET 2015”
  4. Submitted Erlang as middleware as a story · 34 points

    HN discussion
  5. The Rosetta stone paper: http://math.ucr.edu/home/baez/rosetta.pdf also some preliminaries (books by Simmons, Awodey and Lawvere/Schanuel, spivak): http://arxiv.org/abs/1302.6946 http://www.reddit.com/r/math/comments/1eiyid/category_theory... http://blog.begriffs.com/2012/07/order-of-lambda.html http://debasishg.blogspot.com/2012/01/2011-year-that-was.htm...

    Comment linking /2012/01/2011-year-that-was.html

    on “Monads Made Difficult”
  6. Submitted PubSub messaging: scala, Redis , Akka Actors as a story · 20 points

    HN discussion
  7. They're called "thrush" operators, and they translate that code to this: (defn ping [] (:content (http/get "http://localhost:5123" :as :string))) (defn multi-ping [] (apply str (repeatedly 16 #(ping))) More examples: http://debasishg.blogspot.com/2010/04/thrush-in-clojure.html

    Comment linking /2010/04/thrush-in-clojure.html

    on “Clojure, Multi-core, AWS Cluster Compute & Lattes”
  8. Submitted Domain Models - Thinking differently in Scala & Clojure as a story · 19 points

    HN discussion
  9. http://tech.puredanger.com/2007/09/18/spelunking/ http://debasishg.blogspot.com/2009/06/code-reading-for-fun-a... http://www.oreillynet.com/ruby/blog/2006/05/post.html (section about "making Mongrels stable and secure" http://news.ycombinator.com/item?id=483824 http://blog.rubybestpractices.com/posts/gregory/005-code-rea...

    Comment linking /2009/06/code-reading-for-fun-and-profit.html

    on “How to read code”
  10. Submitted Random thoughts on Clojure Protocols as a story · 12 points

    HN discussion
  11. FWIW, several language communities call this "the Thrush combinator"[0]. Armed with that term, searching the web for background/info/theory on this topic will be easier. 0 - https://debasishg.blogspot.com/2009/09/thrush-combinator-in-...

    Comment linking /2009/09/thrush-combinator-in-scala.html

    on “The JavaScript Pipeline Operator”
  12. Submitted Refactoring into Scala Type Classes as a story · 11 points

    HN discussion
  13. I just finished reading To Mock a Mockingbird (though I don't recall a formal definition) so I'll take a stab and leave it to others to correct me. Combinators are the basic building block of combinatorial logic. Simply, they are functions that permute, group, repeat and/or eliminate their arguments. E.g., The T (thrush using the bird naming convention) combinator takes two args and swaps their order: Txy = yx. The…

    Comment linking /2009/09/thrush-combinator-in-scala.html

    on “Mockingbirds and Simple Recursive Combinators in Ruby”
  14. Submitted Composing a domain workflow with statically checked invariants as a story · 8 points

    HN discussion
  15. In clojure, there's the thrush operators: -> and ->> user=> (->> 10 (+ 2) (* 5)) 60 user=> (* 5 (+ 2 10)) 60 http://debasishg.blogspot.com/2010/04/thrush-in-clojure.html

    Comment linking /2010/04/thrush-in-clojure.html

    on “Functional programming, APL and UNIX pipes”
  16. Submitted Static Typing gives you a head start, Tests help you finish as a story · 8 points

    HN discussion
  17. Examples of successful Strong DSL (ie. standalone) are James Gosling's project for satellite control (I think it was), which he did so that users could make their own changes without bothering him (I doubt details are online - he mentioned it in an interview as a virtual machine that was a precursor to Java). Our own pg also had a DSL for the Yahoo Store (was viaweb), so users could customize it. From the docs, it l…

    Comment linking /2008/04/external-dsls-made-easy-with-scala.html?showComment=1208530020000

    on “Ask HN: Writing DSL in Python”
  18. Submitted Data 2.0 - Is your Application ready ? as a story · 7 points

    HN discussion
  19. I used Erlang to build a mid-sized web service app (i.e. REST only, no user interface) which serves more than two million connections per day (sustained), and is deployed on a half dozen nodes across the Internet -- different ISPs (yeah, I'm a masochist). The app integrates the Mnesia database (with replication) and the Yaws web server (with my own extensions). On any given node there were between 1,000 and 3,000 pr…

    Comment linking /2006/11/threadless-concurrency-on-jvm-aka-scala.html

    on “Ask: Is anyone else using Erlang?”
  20. Submitted Thrush in Clojure as a story · 6 points

    HN discussion
  21. Submitted Composing Heterogeneous DSLs in Scala as a story · 5 points

    HN discussion
  22. Submitted A new way to think of Data Storage for your Enterprise Application as a story · 5 points

    HN discussion
  23. Submitted Functional Data Structures in a Persistent Setting as a story · 4 points

    HN discussion
  24. Submitted Laziness in Clojure as a story · 4 points

    HN discussion
  25. Submitted The Thrush Combinator in Scala as a story · 4 points

    HN discussion
  26. Submitted Choosing between Abstract Type Members and Existentials in Scala as a story · 4 points

    HN discussion
  27. Submitted Domain Modeling in Haskell - Combinators for Composition as a story · 3 points

    HN discussion
  28. Submitted Ruminations of a Programmer: Web programming at a higher level of abstraction as a story · 3 points

    HN discussion
  29. Submitted Euler Problem #18 and #67 using functional Scala as a story · 3 points

    HN discussion
  30. Submitted Designing Internal DSLs in Scala (2008) as a story · 2 points

    HN discussion

Search all of HN for debasishg.blogspot.com

Linked by the same people?