Unix Edition Zero (1971)
doc.cat-v.org149 pointsby mbucc59 comments
"/" ++ X = HttpRequest:get(path).
will crash if PATH_INFO doesn't include leading slash. Writing just the sunny path and getting asserts "for free" (without any clutter) is a fun way to program. String Path;
if (HttpRequest.getPathInfo().startsWith("/")) {
Path = HttpRequest.getPathInfo().substring[1:];
} else {
String emsg = "no match of right hand side value \"%s \"";
throw new IllegalStateException(emsg.format(HttpRequest.getPathInfo());
} gcd(A, B) when B == 0 -> A;
gcd(A, B) when A < B -> gcd(B, A);
gcd(A, B) -> gcd(B, A rem B).
I also really appreciated the posting of more of Dijkstra's
thoughts (from rer0tsaz) above, in particular this line struck a chord: When programming languages emerged, the "dynamic" nature of
the assignment statement did not seem to fit too well into the
"static" nature of traditional mathematics.
(Along those lines, Erlang's recasting of the equals sign as a
pattern matching operator felt so natural when I learned how it
worked.)