Idiomatic Erlang?

zxq9 zxq9@REDACTED
Wed Jul 28 01:27:05 CEST 2021


On 2021/07/26 19:19, Benjamin Scherrey wrote:
> Been a couple of decades since I did any Erlang coding from scratch and 
> it seems to have improved significantly (didn't have proper strings back 
> then for example). I have a little hobby project I'm using to get myself 
> up to snuff so I can do some more serious work for an upcoming project.
Hi, Ben.

I noticed ROK gave you a fairly in-depth response already that addresses 
your specific code example and addresses both syntactic and structure 
issues. "Do what ROK says" is a good rule of thumb, and whether or not 
you follow specific advice there is always a lot of good stuff to 
consider carefully though sometimes specific suggestions don't always 
make sense until later.

As an appendix to that answer I have been writing a few example projects 
(and doing horribly boring but complete videos on them, as not everyone 
learns the same way) to give newcomers/returners an idea about how 
programs can be structured to work smoothly with OTP concepts and in the 
process following a syntactic style that we use internally at Tsuriai 
that was originally developed with a lot of input from this particular list.

Style example (a UUID generator):
https://gitlab.com/zxq9/zuuid
* `case` vs `if` vs function head matches and guards
* Indentation
* Spacing
* -spec then @doc then function
* Use of edoc and its output posted

Similarly trivial one-module JSON encoder/decoder:
https://gitlab.com/zxq9/zj

Tetris implemented in Erlang/Wx:
https://gitlab.com/zxq9/erltris
Blog/video posts:
Part 1 https://zxq9.com/archives/1882
Part 2 https://zxq9.com/archives/1886
Part 3 https://zxq9.com/archives/1894

A simple telnet chat server with channels:
https://gitlab.com/zxq9/trash_talk
Blog/video post: https://zxq9.com/archives/1872

Hopefully the above don't put you completely to sleep.

If you are interested in pursuing the MUD/game-server angle 
specifically, I've got a bit of experience in this particular niche area 
and we can discuss issues that come up specifically in the realm of 
writing Erlang game servers.

-Craig


More information about the erlang-questions mailing list