Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    C

    Chung-chieh Shan

    conway.rutgers.edu/~ccshan · Personal blog · on HN since 2010

    Chung-chieh Shan, a programming languages researcher at Rutgers, writes a wiki-style blog on Haskell, types, effects, and language puzzles.

    Visit blogHN submissions
    Languages & CompilersProgrammingMath
    What HN says

    Commenters point to it as a classic of clever programming writing, citing the word numbers posts and a Sudoku solver written in SQL.

    Stats for nerds
    15HN people shared it
    6linked in comments
    82story points
    Sep 2025last shared
    2010people per year2025

    Top posts on HN

    1. 1
      Higher-order Shell
      2 people · 58 points · first shared 2010 · 13 comments on HN
    2. 2
      Word numbers: Billion approaches (2008)
      5 people · 21 points · first shared 2010 · 4 comments on HN
    3. 3
      Really understanding effects
      1 person · 2 points · first shared 2010 · Discussion on HN
    4. 4
      Haskell Symposium program chair report
      1 person · 1 points · first shared 2013 · Discussion on HN
    5. 5
      Differentiation
      3 people · first shared 2013
    6. 6
      WordNumbers4
      1 person · first shared 2011
    7. 7
      Tmp
      1 person · first shared 2010
    8. 8
      Sudoku in SQL
      1 person · first shared 2023
    9. 9
      Discussion %E8%A8%8E%E8%AB%96
      1 person · first shared 2025
    10. 10
      Keep
      1 person · first shared 2010

    What HN people wrote when they linked it

    • partitionNov 2010

      I thought group theory was the easy part. Indeed, that's pretty much what crypto is based on. Many other security applications in CS also rely on group-theoretic notions. Consider homomorphic encryption; the idea that one can develop an encryption algorithm that allows an untrusted source to work with your sensitive data without discovering your data itself, due to the fact that there exist 'one-way' functions from plaintext to gibberish that actually preserve certain operations you care about; i.e., if

      encrypt(x) = x'
      encrypt(y) = y'
      encrypt(z) = z'

      and x + y = z, homomorphic encryption for (+) gives you that x' + y' = z'.

      Farther away from completely direct applications like these are algebraic ways of viewing a CS problem. Consider vectorizing a for loop that does in-place update of a variable with +=. We know that this can be turned into a parallel reduction, where if N is the length of the list over which the for loop is iterating, the parallel reduction will take O(log N) time. But what other operations does it work with? Associative ones? What can we do if it's not associative, or the return type of the in-place update is different? And so on.

      That's pretty much the tip of the iceberg when it comes to abstract algebra being used in CS.

      Now on to category theory. I'm still very, very new to it, but I've been seeing tons of connections anyway. I figure I can view the higher level of abstractness two different ways; that it's going to be hard and impractical to…

    • carterschonwaldMar 2013

      The post mentions motivation being symbolic differentiation.

      Let me instead advocate auto differentiaton. It enables writing mathematical expressions as normal programs, is less error prone for the programmer, is well defined at every valid point in the derivative, and is better at using sharing when computing higher order derivatives. An excellent library for this is, called ad, is available in Haskell.

      edit: link to package is http://hackage.haskell.org/package/ad/

      edit2: I should also add that MOST auto differentiation libraries also have a problem of not being able to distinguish the differential/ epsilon used in two independent derivative calculations, and this can lead to subtle / large numerical errors.

      The AD library uses some haskell type system cleverness to prevent users from making that mistake!

      a nice exposition of this problem can be found in this excellent blog post http://conway.rutgers.edu/~ccshan/wiki/blog/posts/Differentiation/

    • telAug 2013

      You'd be amazed how few do. I'm frequently amazed. Furthermore, when you start getting into advanced types it's amazing how many errors become simply impossible since your types encode the logic your program is intended to represent.

      For an example, here's a blog article linked elsewhere on this page which talks about encoding various "dimensions" of infinitesimals in an automatic differentiation program that thus eliminate a whole class of value errors.

      http://conway.rutgers.edu/~ccshan/wiki/blog/posts/Differentiation/

    • lupireSep 2025

      Enjoy the ultimate classic tour de force from world treasure Chung-chieh (Ken) Shan’s wikiblog "Proper Treatment"

      discussion / punchline http://conway.rutgers.edu/~ccshan/wiki/blog/posts/WordNumbers1/discussion_%E8%A8%8E%E8%AB%96/

      Start of main content: http://conway.rutgers.edu/~ccshan/wiki/blog/posts/WordNumbers1/

    • gohrtOct 2013

      http://book.realworldhaskell.org/

      Spoiler alert: you can't really get anything signifant+useful done with that book, because Haskell is a language where only experts can get anything significant done.

      If you just want the mindblow experience of Haskell:
      http://conway.rutgers.edu/~ccshan/wiki/blog/posts/WordNumbers1/

    • refsetOct 2023

      > defining the rules of suduko [...] in SQL

      Two rather distinct solutions:

      https://www.sqlite.org/lang_with.html#outlandish_recursive_query_examples

      http://conway.rutgers.edu/~ccshan/wiki/blog/posts/Sudoku_in_SQL/

    Related

    Well-Typed Blogwell-typed.com60 people

    Falsify: Hypothesis-Inspired Shrinking for Haskell (2023)

    Well-Typed Blog
    Company · last shared 2026
    Edward Kmettcomonad.com25 people

    Letter to a Young Haskell Enthusiast

    Edward Kmett
    Personal · last shared 2023
    FP Complete Blogfpcomplete.com201 people

    Monads and GATs in Nightly Rust

    FP Complete Blog
    Company · last shared 2025
    Paul Johnsonpaulspontifications.blogspot.com17 people

    Patent 5,893,120 reduced to mathematical formulae

    Paul Johnson
    Personal · last shared 2016
    Luke Palmerlukepalmer.wordpress.com35 people

    IDE WTF

    Luke Palmer
    Personal · last shared 2020
    Edward Z. Yangblog.ezyang.com165 people

    PyTorch Internals: Ezyang's Blog

    Edward Z. Yang
    Personal · last shared 2026
    Existential Typeexistentialtype.wordpress.com157 people

    Haskell Is Exceptionally Unsafe (2012)

    Existential Type
    Personal · last shared 2026
    Brent Yorgeybyorgey.wordpress.com84 people

    Conversations with a six-year-old on functional programming

    Brent Yorgey
    Personal · last shared 2026