Anyone who's ever looked at Erlang knows that the syntax is downright strange . For instance, Python uses "#" for comments, but Erlang interprets "8#7" as 7 in base 8 notation. Python uses "%" for modulo, but Erlang uses "%" for comments. Erlang uses "rem" for modulo, but "rem" is used as a comment delimiter in some other syntaxes. However, I ran across some other cool tidbits. If M is a 16 bit binary value, you can unpack the first 3 bits into X, the next 7 bits into Y, and the last 6 bits into Z using the syntax: <<X:3, Y:7, Z:6>> = M Hence, you can parse an IPv4 datagram in a single pattern-matching operation (taken from "Programming Erlang: Software for a Concurrent World" p. 99): -define(IP_VERSION, 4). -define(IP_MIN_HDR_LEN, 5). ... DgramSize = size(Dgram), case Dgram of <<?IP_VERSION:4, HLen:4, SrvcType:8, TotLen:16, ID:16, Flgs:3, FragOff:13, TTL:8, Proto:8, HdrChkSum:16,