Top all-time · #9142
G-Research
Company blog · gresearch.co.uk/articleprogrammingcareer
G-Research is the company blog at gresearch.co.uk, writing about programming and career. Since 2017, 8 different Hacker News readers have linked it 18 times, most often “Defunctionalisation: An underappreciated tool for writing good software”. It is still writing: the last post was on 2026-11-02, and you can follow it by feed.
Too few sampled comments (3) to say how often HN recommends it.?
Why HN links it
G-Research's blog, including a post on defunctionalisation, which replaces functions with data structures. HN comments cite it as the source for that term and related Haskell IO discussion.
Summarised by Claude from a sample of 3 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
We use machine learning, big data & the most advanced tech to predict movements in financial markets.
Most-linked posts?
- Defunctionalisation: An underappreciated tool for writing good software2 people · 5 mentions · first linked 2020-03-06
- In favour of recursive functions, not imperative constructs, to make loops2 people · 4 mentions · first linked 2020-07-22
What Hacker News says?
G-Research | F# Engineer | Full-time | London - ONSITE after COVID | https://gresearch.co.uk G-Research is Europe's leading quantitative finance research firm. We hire the brightest minds in the world to tackle some of the biggest questions in finance. We pair this expertise with machine learning, big data, and some of the most advanced technology available to predict movements in financial markets. G-Research are o…
Comment linking /
on “Ask HN: Who is hiring? (February 2021)”Submitted Anki as Learning Superpower: Computer Science Edition as a story · 401 points
HN discussion> So.... this is just a fancy name for the advice "give your functions a name"? Not quite: "defunctionalization" is a name for replacing functions with not-functions (data structures). (And IMO it's the most unfancy name one can give to that activity, as the name literally just indicates "removing functions"... I can't think of a less fancy name for it: maybe "un-function-ize"? But that's pretty much the same as "de…
Comment linking /article/defunctionalisation/
on “Defunctionalisation: An underappreciated tool for writing good software”Submitted In praise of --dry-run as a story · 395 points
HN discussionF# does a good job with tail-recursion, though - you can make the for/while loop safer this way. https://www.gresearch.co.uk/article/in-favour-of-recursive-f...
Comment linking /article/in-favour-of-recursive-functions-not-imperative-constructs-to-make-loops/
on “F# is gaining independence from .NET”Submitted Defunctionalisation: An underappreciated tool for writing good software as a story · 339 points
HN discussionHaskell monadic IO is basically this pattern, yes. Term from this blog post: https://www.gresearch.co.uk/blog/article/defunctionalisation...
Comment linking /blog/article/defunctionalisation/
on “Ask HN: What are the best programming tricks you know?”Submitted Metatesting your property-based tests as a story · 2 points
HN discussionYes and no - `doThing` itself is less inspectable, and it's sometimes helpful to separate the implementation from the instructions. (I wrote https://www.gresearch.co.uk/article/defunctionalisation/ ; the usual introduction is https://blog.sigplan.org/2019/12/30/defunctionalization-ever... .)
Comment linking /article/defunctionalisation/
on “Code Health: Make Interfaces Hard to Misuse (2018)”Submitted In favour of recursive functions, not imperative constructs, to make loops as a story · 2 points
HN discussionI agree with the siblings that this isn't true. I've recently finished a big refactor of something entirely back-end with almost no user-visible changes at all (except ahem for a bug I wrote), and I could still present progress. The work was the migration of six or so different components: they used to conform to one API, and I moved them to a different API. I found a way to order the changes so that they could be d…
Comment linking /article/defunctionalisation/
on “Ask HN: How do I help an underperforming team get on track”Submitted In favour of recursive functions, not imperative constructs, to make loops as a story · 2 points
HN discussionSubmitted Continuation-Passing Style as a story · 1 points
HN discussionSubmitted Squeezing More Out of the F# Type System as a story · 1 points
HN discussionSubmitted In favour of recursive functions, not imperative constructs, to make loops as a story · 1 points
HN discussionSubmitted Defunctionalisation: An underappreciated tool for writing good software as a story · 1 points
HN discussionSubmitted Squeezing More Out of the F# Type System – Introducing Crates as a story · 1 points
HN discussionSubmitted Gaming vs. “Finance” – Wildly different or more similar than you think? as a story · 1 points
HN discussion