advocacy
- Eleven Years of Erlang - maps were added as an alternative to records; strings still aren't separate but the binary syntax for UTF8 strings has gotten down to
~"string"with OTP 27. - My Road to Erlang - vs. SML, OCaml, Haskell.
I had a similar experience at a similar time, of getting so frustrated with writing Forth in an excessively hair-shirt manner, that I went looking for the exact opposite of writing code that way. - On the Perils of Benchmarking Erlang
- Writing Video Games in a Functional Style - an index of performance blog posts
- Purely Functional Retrogames, Part 1
erlang
performance
- A Deeper Look at Tail Recursion in Erlang - simple rule: "If a parameter is passed to another function, unchanged, in exactly the same position it was passed in, then no virtual machine instructions are generated."
- Garbage Collection in Erlang - still good, but read this too
- A Ramble Through Erlang IO Lists (atoms were never added)
- Don't Structure Data All The Way Down
style
- How I Learned to Stop Worrying and Love Erlang's Process Dictionary
- Evolution of an Erlang Style - use I/O with external programs instead of NIFs, prefer list comprehensions and body-recursive list-building
- An Outrageous Port - example of I/O with external programs
- Erlang as a Target for Imperative DSLs - showing efficient Erlang vs. imperative-like use of
dict:store/3 - Erlang vs. Unintentionally Purely Functional Python - against minding copies so much
awkward
- Let's Take a Trivial Problem and Make it Hard - tuple freq/1 is still slightly faster than a map-based freq/1, at the cost of much more garbage, and both are comically wasteful and ill-performing when compared to the process dictionary.
- Puzzle Languages - or "escape hatches"
- Revisiting "Purely Functional Retrogames"
- Accidentally Introducing Side Effects into Purely Functional Code
programming
- Starting in the Middle - don't get bogged down in scaffolding
- Turning Your Code Inside Out - how/why to get functional code from stateful code. Sequels:
- Messy Structs/Classes in an Functional Style
- Functional Programming Doesn't Work (and what to do about it) - "go down the purely functional path as much as possible, but fall back on imperative techniques"
- Would You Bet $100,000,000 on Your Pet Programming Language? - hitting a little close to the home...
- Write Code Like You Just Learned How to Program
stale
- Finally: Data Structure Constants in Erlang - HIPE's come and gone, but this code still isn't as inefficient as in the pre-HIPE era
- What to do about Erlang's Records? - answered by maps