Viewing profile — catnaroek
catnaroek
HN member- Joined
- Sun, Aug 18, 2013, 7:05 AM UTC
- HN karma
- 1,638
- Public activity
- 2,140 items
- HN profile
- View on Hacker News ↗
About catnaroek
Recent public activity
-
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…
-
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…
-
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…
- comment
-
comment
Comment #17105815
That's actually Brian Kernighan. Dijkstra would have never advocated debugging to begin with.
-
comment
Comment #17051533
Oops, sorry, yes.
-
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…
-
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 …
-
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…
-
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…
-
comment
Comment #16980980
> Safety > Variables are immutable by default, globals are not allowed, functions are pure. This is a huge non-sequitur.
-
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…
-
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…
-
comment
Comment #16959144
Voilà.
-
comment
Comment #16958936
> 4. Viola! Send them to your friends or trade them The musical instrument?
-
comment
Comment #16949351
I don't see anything wrong with rose trees: datatype 'a tree = T of 'a * 'a tree list Do you?
-
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…
-
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…
- comment
-
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…
-
comment
Comment #16897443
Java is pass-by-value, indeed. Too bad Java's values aren't the values you want.
-
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…
-
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…
-
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…
-
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…