Pages
Categories
- AC
- algorithm
- announcement
- applicative
- art
- axiom of choice
- balanced
- Beeminder
- BFS
- bijection
- binary
- BlogLiterately
- category
- challenge
- combinatorial species
- combinatorics
- competitive
- constructive
- data
- design
- diagrams
- dissertation
- drawing
- DSL
- dynamic programming
- EDSL
- enumeration
- functional
- 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
- August 2023 (1)
- July 2023 (1)
- June 2023 (4)
- May 2023 (4)
- April 2023 (1)
- 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: haskell
Swarm 0.4 release
The Swarm development team is very proud to announce the latest release of the game. This should still be considered a development/preview release—you still can’t save your games—but it’s made some remarkable progress and there are lots of fun things … Continue reading
Compiling to Intrinsically Typed Combinators
tl;dr: How to compile a functional language via combinators (and evaluate via the Haskell runtime) while keeping the entire process type-indexed, with a bibliography and lots of references for further reading There is a long history, starting with Schönfinkel and … Continue reading
Competitive Programming in Haskell: two more DP challenges
Continuing the series on dynamic programming, I just have a couple challenge problems for you today. I have indeed solved both of these problems in Haskell, but I don’t yet know how to write elegant solutions! There is a reason … Continue reading
Posted in competitive programming, haskell
Tagged challenge, dynamic programming, haskell, Kattis
7 Comments
Nested folds
I’m finally getting around to reading Algorithm Design with Haskell (hereafter abbreviated as ADH), by Jeremy Gibbons and Richard Bird. I’ve had it for a while, and I have no excuse for waiting this long to read it, but anyway. … Continue reading
Dynamic programming in Haskell: automatic memoization
This is part 2 of a promised multi-part series on dynamic programming in Haskell. As a reminder, we’re using Zapis as a sample problem. In this problem, we are given a sequence of opening and closing brackets (parens, square brackets, … Continue reading
Posted in competitive programming, haskell
Tagged challenge, dynamic programming, haskell, Kattis
4 Comments
Dynamic programming in Haskell: lazy immutable arrays
This is part 1 of a promised multi-part series on dynamic programming in Haskell. As a reminder, we’re using Zapis as a sample problem. In this problem, we are given a sequence of opening and closing brackets (parens, square brackets, … Continue reading
Posted in competitive programming, haskell
Tagged challenge, dynamic programming, haskell, Kattis
2 Comments
Competitive programming in Haskell: introduction to dynamic programming
In my previous post, I challenged you to solve Zapis. In this problem, we are given a sequence of opening and closing brackets (parens, square brackets, and curly braces) with question marks, and have to compute the number of different … Continue reading
Posted in competitive programming, haskell
Tagged challenge, dynamic programming, haskell, Kattis
8 Comments
Competitive programming in Haskell: parsing with an NFA
In my previous post, I challenged you to solve Chemist’s Vows. In this problem, we have to decide which words can be made by concatenating atomic element symbols. So this is another parsing problem; but unlike the previous problem, element … Continue reading
Posted in competitive programming, haskell
Tagged challenge, haskell, Kattis, NFA, parsing
12 Comments
Competitive programming in Haskell: tries
In my previous post, I challenged you to solve Alien Math, which is about reading numbers in some base , but with a twist. We are given a list of strings representing the names of the digits through , and … Continue reading