Pages
Categories
- AC
- algorithm
- announcement
- applicative
- art
- axiom of choice
- balanced
- Beeminder
- BFS
- bijection
- binary
- BlogLiterately
- category
- challenge
- combinatorial species
- combinatorics
- competitive
- constructive
- darcs
- data
- design
- diagrams
- dissertation
- drawing
- EDSL
- enumeration
- functional
- functional programming
- functor
- game
- geometry
- GHC
- graph
- graphics
- hackathon
- Hac φ
- haskell
- ICFP
- isomorphism
- Kattis
- library
- log
- monad
- monads
- monoid
- music
- natural
- number
- paper
- parsing
- partitions
- pedagogy
- productivity
- programming
- QuickCheck
- random
- release
- resource
- robot
- sampling
- search
- sets
- species
- subtraction
- Swarm
- talk
- teaching
- theory
- tree
- tutorial
- type-level
- Typeclassopedia
- types
- virtual
- workshop
Archives
- March 2023 (1)
- February 2023 (2)
- January 2023 (3)
- December 2022 (2)
- October 2022 (1)
- September 2022 (1)
- August 2022 (1)
- June 2022 (1)
- November 2021 (2)
- October 2021 (4)
- September 2021 (5)
- August 2021 (1)
- June 2021 (3)
- February 2021 (1)
- July 2020 (2)
- June 2020 (3)
- May 2020 (4)
- April 2020 (2)
- March 2020 (2)
- February 2020 (4)
- December 2019 (1)
- November 2019 (1)
- October 2019 (1)
- July 2019 (1)
- May 2019 (2)
- April 2019 (2)
- March 2019 (1)
- February 2019 (3)
- November 2018 (1)
- October 2018 (3)
- June 2018 (1)
- May 2018 (4)
- April 2018 (1)
- March 2018 (2)
- February 2018 (3)
- January 2018 (1)
- November 2017 (1)
- September 2017 (1)
- June 2017 (1)
- May 2017 (1)
- April 2017 (1)
- March 2017 (1)
- February 2017 (4)
- January 2017 (3)
- November 2016 (2)
- October 2016 (2)
- September 2016 (3)
- August 2016 (4)
- July 2016 (1)
- June 2016 (1)
- May 2016 (3)
- April 2016 (2)
- March 2016 (3)
- February 2016 (1)
- November 2015 (2)
- October 2015 (1)
- August 2015 (2)
- July 2015 (1)
- June 2015 (3)
- May 2015 (2)
- April 2015 (1)
- March 2015 (1)
- August 2014 (3)
- June 2014 (2)
- May 2014 (2)
- January 2014 (2)
- October 2013 (1)
- August 2013 (1)
- July 2013 (1)
- May 2013 (1)
- April 2013 (3)
- March 2013 (2)
- January 2013 (2)
- December 2012 (2)
- November 2012 (4)
- October 2012 (3)
- August 2012 (4)
- July 2012 (5)
- June 2012 (1)
- March 2012 (1)
- January 2012 (1)
- November 2011 (4)
- October 2011 (3)
- September 2011 (2)
- August 2011 (2)
- July 2011 (2)
- June 2011 (1)
- May 2011 (6)
- April 2011 (2)
- March 2011 (1)
- February 2011 (3)
- January 2011 (1)
- December 2010 (2)
- November 2010 (3)
- October 2010 (1)
- September 2010 (1)
- August 2010 (3)
- July 2010 (2)
- June 2010 (3)
- May 2010 (3)
- April 2010 (3)
- March 2010 (2)
- February 2010 (1)
- January 2010 (1)
- December 2009 (2)
- October 2009 (3)
- September 2009 (2)
- August 2009 (4)
- July 2009 (7)
- June 2009 (1)
- May 2009 (2)
- April 2009 (1)
- March 2009 (2)
- February 2009 (3)
- January 2009 (3)
- December 2008 (2)
- September 2008 (2)
- August 2008 (1)
- July 2008 (3)
- June 2008 (1)
- April 2008 (4)
- March 2008 (4)
- February 2008 (4)
- January 2008 (2)
- December 2007 (4)
- October 2007 (2)
- September 2007 (2)
- August 2007 (3)
- June 2007 (2)
Top Posts
Blogroll
Fun
Personal
Meta
Category Archives: combinatorics
Lightweight invertible enumerations in Haskell
In a previous post I introduced a new Haskell library for enumerations (now on Hackage as simple-enumeration). The Data.Enumeration module defines a type Enumeration a, represented simply by a function Integer -> a which picks out the value of type … Continue reading
Posted in combinatorics, haskell, projects
Tagged bijection, data, enumeration, function, index, inverse, sampling
2 Comments
Lightweight, efficiently sampleable enumerations in Haskell
For another project I’m working on, I needed a way to enumerate and randomly sample values from various potentially infinite collections. There are plenty of packages in this space, but none of them quite fit my needs: universe (and related … Continue reading
Posted in combinatorics, haskell, projects
Tagged data, enumeration, function, index, sampling
11 Comments
What’s the Difference? video and slides
At ICFP in St. Louis I presented my paper with Kenny Foner, What’s the Difference? A Functional Pearl on Subtracting Bijections. Many people seemed to enjoy the talk and we got lots of great feedback afterwards. We will probably write up … Continue reading
Posted in combinatorics, haskell, writing
Tagged bijections, difference, ICFP, paper, pearl, subtraction, talk
2 Comments
New ICFP functional pearl on subtracting bijections
Kenny Foner and I have a paper accepted to ICFP on subtracting bijections. Here’s the basic problem: suppose you have a bijection between two sum types, , and another bijection . Of course and must have the same size, but … Continue reading
Posted in combinatorics, haskell, writing
Tagged bijections, difference, ICFP, paper, pearl, subtraction
5 Comments
Signed sets and ballots and naturality
This is blog post #3 in a series on signed sets and ballots (the previous posts are here and here). Naturality, isomorphism, and equipotence When are two species isomorphic? Since species are, by definition, functors , the obvious answer is … Continue reading
Posted in combinatorics, math, species
Tagged ballots, bijection, involution, natural, sets, signed, species, virtual
2 Comments
Signed sets and ballots, part 2
Recall, from my previous post, that our goal is to find a combinatorial proof showing the correspondence between signed sets and signed ballots, where a signed set is just a set of elements, considered positive or negative according to the … Continue reading
Signed sets and ballots, part 1
The other day, Anders Claesson wrote a very nice blog post explaining a more combinatorial way to understand multiplicative inverses of virtual species (as opposed to the rather algebraic way I explained it in my previous post). In the middle … Continue reading
Posted in combinatorics, math, species
Tagged ballots, bijection, involution, sets, signed, species, virtual
2 Comments
Virtual species suffice
Over six years ago, I wrote a post explaining how virtual species are defined. Ever since then (time flies!) I’ve been meaning to write a follow-up post explaining a bit more about virtual species and how they actually suffice to … Continue reading
Adventures in enumerating balanced brackets
Since I’ve been coaching my school’s ACM ICPC programming team, I’ve been spending a bit of time solving programming contest problems, partly to stay sharp and be able to coach them better, but also just for fun. I recently solved … Continue reading
A (work in progress) translation of Joyal’s original paper on species
tl;dr: I’m working on an English translation, with additional commentary, of Joyal’s 1981 paper introducing the concept of combinatorial species. Collaboration and feedback welcome! Back when I was writing my PhD thesis on combinatorial species, I was aware that André … Continue reading →