addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwchatcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgoogleimageimagesinstagramlinklocation-pinmagnifying-glassmailminusmoremuplabelShape 3 + Rectangle 1outlookpersonplusprice-ribbonImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruseryahoo

Monthly FMUG Meetup

Hank will present functional programming in Java - how to achieve compromise between the functional and imperative worlds and maintain sanity in your day job by using DIY methods and the functionaljava and guava libraries.

David Overton will look at using the concept of "zippers" for navigating and manipulating immutable data structures such as lists and trees. Basic knowledge of immutable data structures is assumed. The introduction from last month should be sufficient. Examples will be in Haskell. Time permitting he will cover the related theoretical concept of applying the differential calculus to algebraic data types.

The doors to get into the office lock at 6pm. If you come later than that you'll need to give me a call on[masked] to let you in.

Join or login to comment.

  • Noon S.

    Amazing talk by David Overton!

    Some comments.

    I mentioned generating functions a lot; a good book on the subject is here:

    The reason for the connection, as I see it, is that Haskell's type delcaration for these things looks exactly like the combinatorial construction that you follow in generation functions.

    The list construction that was derived, L(a) = 1 + a L(a), is combinatorially a "sequence of a". (Derived more generally on page 28 of the book.) The tree result comes similarly, and the trees of that type (binary trees) are called Catalan trees:

    Starting at page 201 in the book, you see the deriative operation come in, and it corresponds roughly to what David was describing with the marking with a hole. (Following that is the theory of integration!)

    ... (tbc in next post)

    2 · August 1, 2013

    • David O.

      Thanks Noon. I haven't seen any mention of generating functions in the literature on type differentiation. Maybe I just missed it (there are a few journal articles that I haven't fully read) or maybe none of the computer scientists who have been investigating it are aware of them.

      1 · August 1, 2013

    • Noon S.

      A colleague informs me of - http://www.cis.upenn....­ - which seems quite relevant.

      1 · August 2, 2013

  • Logan C.

    Great talk David. I thought Zippers were magic until today.

    1 · August 1, 2013

  • David O.

    Link to the PDF of my slides from tonight's talk:

    Also the LaTeX source if anyone's interested.

    I learned some cool new (to me at least) techniques with the beamer class and listings package, as well as discovering dot2tex, which allows you to write your dot graphs inline within your .tex file.

    Here are some links I found useful while preparing the talk.

    The Algebra of Algebraic Data Types (Part 3, with links to Parts 1 & 2):

    Zippers in the Haskell WikiBook:

    Learn You a Haskell chapter on zippers:

    Don Stewart's blog post on the XMonad zippers:

    1 · August 1, 2013

  • Lyndon M.

    Hi David. Great talk!

    Are your slides available somewhere?

    1 · August 1, 2013

  • A former member
    A former member

    Bummer, I've got class till 8.30 so won't be able to make it this time.

    July 31, 2013

Our Sponsors

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy