At October’s meeting we met new members, Paul and Chris.


Summary of the meeting from Chris (a newcomer):

To get things started, there was a brief continuation of the discussion that was initiated on Meetup regarding the aim and structure of the meeting, especially with regard to supporting attendance growth. Several ideas were proposed, including creating a formal agenda before the meeting, which would consist of various topics, blog posts, papers and lectures.

The group welcomed two newcomers this week, both of whom were beginners. As an experiment, it was suggested that the group work through a very basic exercise with one of the beginners. Specifically, creating a data constructor for a binary tree. This led to a discussion of the recursion in the definition, and eventually to a discussion of how to iterate over the nodes. Ultimately, this led to another beginner exercise where (yours truly) worked through the semantics and implementation of foldr (which resulted in the inadvertent implementation of foldl…). A method of using constructor transformations (structural induction) in to derive recursive function definitions was discussed as a common technique.

Another topic of conversation was comparing the semantics of “call by value,” “call by name” and “call by need.” As an aside, the topic of thunk evaluation was raised, especially in the context of concurrency. One of the members walked through the conceptual algorithm used to evaluate thunks “only once,” how this isn’t quite true in concurrent contexts (i.e. multiple concurrent evaluations to the same pure value are possible across cores), and how this is actually an intentional optimization choice considering the likelihood of race occurrences.

As the meeting wrapped up, the group gauged the interest in potentially moving the meeting to Seattle to help drive attendance. There were no clear proponents or champions for finding venues at the time, but the possibility remains.