What's the progress on Haskell records?The other issue is that if you add a new record system, you can either get rid of the current one, which would be a breaking change, or have two record systems simultaneously, which would be a mess. I think the a.b issue is less important because A.b already means something different from A . b (thanks to the module system). Sure it's a breaking change, but it's not a particularly bad one.

What is the advantage of currying?I've never had problems like that: GHC, at the very least, is very good in that regard. The compiler always catches that sort of issue, and has good error messages for this error as well.

Feb3

comment

What is the advantage of currying?While the motivation here is theoretical, I think simplicity is almost always a practical advantage as well. Not worrying about multi-argument functions makes my life easier when I program, just as it would if I was working with semantics.

How do programming languages benefit from being based on English?@DavidThornley: Some languages, like Haskell, give identifiers starting with upper and lower case letters different roles. Others, like Java, should do that because that's what happens in practice anyhow. (That said, Haskell fully supports Unicode and figures out what role a character plays by its Unicode class.)

When should I make the first commit to source control?I do something similar. Since I use GitHub, I also always have a basic README file, even it just contains the name of the project. I find having the file there from the get-go makes it much more likely that I'll update it in the future :).

Applying Denotational Semantics to design of ProgramsWhen I was looking into FRP, I thought there were some very good examples of denotational semantics making my life simpler--I found behaviors and events far easier to understand and think about after seeing the denotational semantics for them. However, this is a very simple example, so I'm not sure how illustrative it would be.

Determinism of functions using PRNG in Clojure and functional languagesI don't know much about Clojure, but at least in Haskell the random numbers package is designed so that you can give it any generator you want. You can use a global one that gets a seed from the system, but you can just as easily use one with a constant seed. So this is certainly possible--and, in fact, really easy--in Haskell, which is a language even more functional than Clojure.