[TUHS] v7 K&R C

Rich Morin rdm at cfcl.com
Mon Apr 27 07:59:43 AEST 2020


> On Apr 26, 2020, at 13:10, Derek Fawcus wrote:
> 
> I guess I'd have to question why someone would wish to write such a construct,
> as error handling seems awkward.

FWIW, I do most of my programming these days in Elixir.  It's a functional
programming language with pervasive pattern matching, Rubyish syntax, and
Lispish macros.  It runs on the Erlang virtual machine, so it has a good
story for Actor-based concurrency, distribution, etc.  For details, see:

  https://en.wikipedia.org/wiki/Elixir_(programming_language)

Anyway, compilation is mostly handled by Lispish macros, so it can support
some fairly cool metaprogramming.  In particular, I can write things like:

out_map = inp_list     |>
Enum.filter(filter_fn) |>
Enum.map(map_fn)       |>
Enum.reduce(%{}, reduce_fn)

Piped values are handed in as the first argument to each function and most
functions expect this behavior.  For extra credit, there is a set of Stream
functions (really, macros) that process one element at a time and handle
errors in a reasonable manner.

-r





More information about the TUHS mailing list