tag:blogger.com,1999:blog-6918427997759942244.post5755942323344096130..comments2022-04-28T16:59:28.870-04:00Comments on Elegant Coding: Haskell DCelegantcodinghttp://www.blogger.com/profile/12373582469986942814noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-6918427997759942244.post-32734515217697256492014-03-03T16:27:51.398-05:002014-03-03T16:27:51.398-05:00Joseph,
Thanks for adding these. I look forward ...Joseph,<br /><br />Thanks for adding these. I look forward to hearing you present.elegantcodinghttps://www.blogger.com/profile/12373582469986942814noreply@blogger.comtag:blogger.com,1999:blog-6918427997759942244.post-37440437698941329492014-02-25T11:54:36.078-05:002014-02-25T11:54:36.078-05:00Hi Geoff,
I came by here to review the list of to...Hi Geoff,<br /><br />I came by here to review the list of topics you suggested for Haskell meetup topics. I feel like I'm an intermediate-advanced Haskell programmer and could enjoy covering a fair set of the topics above, but I want to pick ones that would be audience appropriate, captivating, and succinct enough to get through in the time allotted.<br /><br />So let me run down the list of things and talk about ones I'd probably enjoy then I'll propose a few other topics which I quite enjoy.<br /><br />Purely Functional Programming (ups/downs/usage philosophy)<br />Laziness (how the Haskell heap works, stupid lazy tricks)<br />Immutability (tricks/benefits/details of memory cost/graph reduction)<br />Type Inference (how HM works/unification/how dependently typed systems work, i.e. Lambda Pi)<br />ADTs (category theoretic hearth, "7 trees in 1", really cool examples, RankNTypes versus ExistentialQuantification)<br />Monads (strange monads, Cont as the Mother Monad, Free Monads, Monads as syntax trees with substitution, monad transformers, free monad transformers)<br />Type Classes (type class prolog, multiparam type classes and fundeps, type families, reflection/reification, finally tagless encodings)<br />Polymorphism (parametricity: theorems for free practical or theoretical)<br /><br />Package Management (how I use cabal)<br />Testing (the glory of quickcheck!)<br /><br />JSON (library review: Aeson!)<br />Algorithms (review of some random functional pearl, Russel O'Connor's A Very General Method of Computing Shortest Paths)<br />Parsers (You too could have built Parsec/Attoparsec)<br />Algebraic Programming (Haskell's algebra, vector-space, linear, or semigroupoids packages)<br />Data Visualization (Haskell's diagrams lib)<br />Statistics/Mathematical programming (streaming folds a la the reducers package)<br /><br />Lambda Calculus (embedding STLC using de Bruijn indicies, HOAS, PHOAS, Bound, etc)<br />Type Theory (just enough MLTT to hang yourself with, maybe a touch of HoTT)<br />Category Theory (intro/how to think about it, the definition of a monad, the definition of a functor, what are adjunctions)<br />Cata/Anamorphisms (explaining the recursion-schemes package, a day with Squiggol, i.e. lenses/bananas/barbed wire)<br />Lenses (I've written a few tutorials on FP Complete around lenses)<br /><br /><br />And a few topics of my own inspired by this list<br /><br />The Static Nature of Traversals (how to see them both as the essence of iteration and something greater)<br />Uniplate<br />Algebra/Coalgebra/Initial/Final encodings of types<br />Object Oriented programming in Haskell (they're not at odds!)<br />XML processing if I ever finish my xml-mapping lib<br />Equational Reasoning (functional pearls)<br />Type-driven development a la Agda<br /><br /><br />I'm leaving this list here both for brainstorming purposes and also to solicit and feedback on things that might be interesting and appropriate given knowledge of what the group has talked about up until this point.<br /><br />CheersAnonymoushttps://www.blogger.com/profile/03656109808069214880noreply@blogger.com