Live data from Hacker News

Viewing profile — catnaroek

catnaroek

HN member
Joined
Sun, Aug 18, 2013, 7:05 AM UTC
HN karma
1,638
Public activity
2,140 items

About catnaroek

The end of the world is nigh. Bring as much popcorn as you can!

Recent public activity

  1. comment
    Comment #18011037

    Calling HLists “collections” is misleading. In spite of their name, HLists are actually record types. The only actual list involved is a compile-time list of component types used t…

  2. comment
    Comment #17947083

    In general, Haskell does not do parametric polymorphism through monomorphization. In particular, higher-rank polymorphism becomes unusable if polymorphism is implemented through mo…

  3. comment
    Comment #17781730

    Two words: loop invariant. Implement a system that figures out the right loop invariant given a problem description (expressed however you want), and you will have made a lot of pr…

  4. comment
  5. comment
    Comment #17105815

    That's actually Brian Kernighan. Dijkstra would have never advocated debugging to begin with.

  6. comment
    Comment #17051533

    Oops, sorry, yes.

  7. comment
    Comment #17038556

    Optionals are a better alternative to null. They compose better (i.e., they nest) and play nicely with data abstraction (i.e., you can define an abstract type that hides the fact t…

  8. comment
    Comment #17038495

    Typed Racket is more ambitious than other attempts at adding types to an underlying untyped language. Namely, Typed Racket guarantees that typed code is never to blame for certain …

  9. comment
    Comment #17000164

    > It doesn't try to analyze and compare existing programming languages. It does. For example, this theory identifies when and how incorrectly designed programming languages fail to…

  10. comment
    Comment #16985410

    I don't understand in what sense programs can be called “differentiable”. Is the space of programs modulo observational equivalence a manifold to begin with? (I don't think it's Ha…

  11. comment
    Comment #16980980

    > Safety > Variables are immutable by default, globals are not allowed, functions are pure. This is a huge non-sequitur.

  12. comment
    Comment #16978478

    You are badly conflating some issues here. How to implement automatic memory management is a runtime design issue. How to enforce proper non-memory resource management is a languag…

  13. comment
    Comment #16976416

    > The problem is, functional programming languages are almost always harder to read than other languages. Haskell is the obvious example There are many legitimate reasons to dislik…

  14. comment
  15. comment
    Comment #16958936

    > 4. Viola! Send them to your friends or trade them The musical instrument?

  16. comment
    Comment #16949351

    I don't see anything wrong with rose trees: datatype 'a tree = T of 'a * 'a tree list Do you?

  17. comment
    Comment #16949314

    Not too long was it figured out how to reconcile subtyping with type inference. However, this requires doing subtyping in a very specific way, which most users of languages with su…

  18. comment
    Comment #16926030

    Lately, I am of the idea that the real problem with how we do concurrency is that we have yet to figure out a way to do it without first-class procedures. When we spawn a thread, e…

  19. comment
  20. comment
    Comment #16897474

    > Java's semantics are pass-by-value only of you consider that the "values" that are being passed are pointers. All values in Java are indeed either primitives or pointers. You can…

  21. comment
    Comment #16897443

    Java is pass-by-value, indeed. Too bad Java's values aren't the values you want.

  22. comment
    Comment #16893238

    > Your definitions of Ring and PolynomialRing are incomplete because neither specifies the appropriate set of axioms. Because you do not specify those axioms, your type signature i…

  23. comment
    Comment #16892583

    It is not clear to me how you could enforce invariants that relate multiple database states. Allow me to give a silly toy example. Suppose you have to design a system where (0) Eve…

  24. comment
    Comment #16891417

    > However, I am considering an even more general scheme, where it is possible to define what is meant by addition, multiplication, etc., for new datatypes unimagined by the languag…

  25. comment
    Comment #16889145

    > intricate and expressive type system that Scala gives you Most of the complexity of Scala's type system comes from a desire to be compatible with Java, rather than to actually ma…