Live data from Hacker News

Viewing profile — fadmmatt

fadmmatt

HN member
Joined
Sat, Aug 18, 2007, 5:59 PM UTC
HN karma
325
Public activity
48 items

About fadmmatt

CS prof in programming languages and compilers; research emphasis in static analysis of functional languages:

http://matt.might.net/

Recent public activity

  1. story
  2. comment
  3. comment
    Comment #1468781

    It will look suspiciously similar to the Scripting Language Design and Implementation class that I'll be teaching. This kind of stuff also showed up in my program analysis and adva…

  4. comment
    Comment #1468609

    Sure, but the article doesn't use eval.

  5. comment
    Comment #1468491

    That's a good question, actually. Lisp macros need knowledge of the structure of the s-expression. Certainly one can Church encode s-expressions and provide defmacro. Gensym is tri…

  6. story
  7. comment
    Comment #1376065

    I was an entrepreneur (failed twice), and I'm now a professor. Being a pre-tenure professor is way more terrifying than being an entrepreneur was. And, depending on the field, betw…

  8. comment
    Comment #1298652

    You can't do this with #define alone. You can pass these "functions" around arbitrarily, and it still works.

  9. comment
    Comment #1272608

    Good question. In short, you can use the macros to hide the context-switching (yielding). You could, for instance, force every function to perform a context switch right after its …

  10. comment
    Comment #1272289

    When I taught advanced compilers last semester, one of the projects was a Scheme-to-C compiler that implemented first-class continuations via call/cc. I realized when going over th…

  11. comment
    Comment #1262677

    Neat; but C++0x does this: [](int x, int y) { return x + y; } instead of this: lambda (x,y) --> x + y Ironically, the template hack could be shorter in many cases.

  12. comment
    Comment #1262483

    (Article author here.) I'd love to use Haskell, but I'm helping out on an exascale DoE project, and C++ is all we're allowed to use. Ugh. Of course, lambdas don't make C++ more pow…

  13. comment
    Comment #1211929

    Milner, Robin (1978), "A Theory of Type Polymorphism in Programming", Jcss 17: 348–375 I don't know if there's a free copy online anywhere. The Damas-Milner paper is the sequel; it…

  14. comment
    Comment #1210680

    For anyone that uses an ML (e.g. OCaml), Haskell or Scala, Milner was responsible for the Hindley-Milner type system and inference algorithm that sits at the foundation of these la…

  15. comment
    Comment #1195082

    In case anyone needs them, I wrote up Okasaki red-black trees for Scala: http://matt.might.net/articles/implementation-of-immutable-p...

  16. comment
    Comment #1171874

    Back when I took calculus in high school, the instructor asked for a show of hands for first-borns. All hands but one went up--well above 80%. I've wondered why that was so ever si…

  17. comment
    Comment #1170063

    My brother in the Army can still see it, so it's apparently not all government. By the way, he can't get to Hacker News.

  18. comment
    Comment #1169990

    Can anyone check to see if http://matt.might.net/ is blocked? I host it on a linode. Thanks!

  19. comment
    Comment #1154365

    * Does the transfer function not need to take some input other than the state? It depends on how you're encoding things. You might want to supply the I in I/O as an extra parameter…

  20. comment
    Comment #1153515

    If you're wondering what things like "operational" and "denotational" mean and what they look like in code, I created this article for my compilers students: http://matt.might.net/…

  21. comment
    Comment #1144689

    Herb Simon noted the optimal solution is often infeasible a long time ago. He argued that economic agents rarely finding a satisfying solution to their constraints, and instead cho…

  22. comment
    Comment #1144474

    Enhance! http://www.youtube.com/watch?v=Vxq9yj2pVWk

  23. comment
    Comment #1141215

    This is a great article. Continuations are rarely understood, which is unfortunate, given their power. I wrote an article for my compilers class that gives examples of how to use c…

  24. comment
    Comment #1138801

    The role the YC plays in this case is hiding the memoization. The memoizing Y combinator is the same as the Y combinator, except it doesn't re-compute inputs it's already seen. Wri…

  25. comment
    Comment #1138793

    Stay tuned: I'll be giving another crazy lambda talk at PLDI 2010 this summer.