mp8's comments

mp8 | 6 years ago | on: Gigantic Chinese telescope opens to astronomers worldwide

That's surprising. I went there recently, and you aren't permitted to bring any electronic devices whatsoever - you have to leave them in a locker and then take a ~30 minute bus ride to the telescope.

They're also very strict about checking: you have to go through two different x-ray machines to check you didn't sneak any electronics through.

mp8 | 10 years ago | on: Rosette: a solver-aided programming language that extends Racket

The transputer actually has a successor called the XCore[0], which is produced by XMOS. They're founded by the same fellow that came up with the transputer (David May).

It's a similar concept again - it's a multi-core chip for embedded applications, and the cores communicate using an on-chip network. Each core is like a regular CPU with a clock though - the GreenArrays approach seems to be completely asynchronous.

[0] http://xmos.com/

mp8 | 10 years ago | on: Rosette: a solver-aided programming language that extends Racket

This does seem very interesting! Because of your comment I started reading the architecture document for the GreenArrays[0] chip, and it's totally different to anything I've seen: a network of processing units, and the whole thing without a clock anywhere!

I am interested what makes you say it "provides computational grunt comparable to an i7 for a few milliwatts" though - could you elucidate? Do you mean in terms of performance-per-watt?

[0]: http://www.greenarraychips.com/home/documents/greg/PB002-100...

mp8 | 11 years ago | on: Dijkstra on Haskell and Java (2001)

I was lucky to get a mix of C, Java, and Haskell. Unfortunately (to my detriment) I totally ignored Haskell, and it didn't really click until I picked it up at the end of my degree out of curiosity- it really does help to clarify one's thinking.

I think teaching the motivation for learning it before beginning would have been better than just throwing it at freshmen, but I can't truly blame anyone other than myself.

mp8 | 11 years ago | on: Shen is a portable functional programming language

Looks interesting. However, does the following not mean that it's not portable?

> Note that if Shen is not running on a Lisp platform, then function may be needed to disambiguate those symbol arguments that denote functions.

mp8 | 11 years ago | on: Why Go Is Not Good

I chose between Go and Haskell for a project some time around 2012. I was a beginner to both, but came from a background of imperative languages (C, C++, Java, etc.)

Initially I felt the same as you: Go was much easier to get things done in, and I could be reasonably productive quite quickly (moreso than Haskell, which I found very difficult to learn).

However, after some time I found many of the same problems mentioned in this article. Particularly, in many cases I had to fall back to the kind of nasty unsafe code mentioned in this article (like using interface{}). Often, I felt that my code was needlessly verbose. I would frequently write code and feel that the language was preventing me from doing what I wanted directly. Ironically, this is exactly how I felt with Haskell at first (not anymore).

Ultimately, I ended up switching to Haskell, and although it was significantly harder to learn, I felt like it has a lot more flexibility, safety, and importantly lends a clarity to thinking when designing a program.

mp8 | 11 years ago | on: What Is Declarative Programming (2013)

Really I just wanted to point out that the State Monad is not actually hiding any "real" mutation anywhere, nor is it related to the IO Monad- I was confused on this point for some time when learning Haskell.

mp8 | 11 years ago | on: What Is Declarative Programming (2013)

> So as I understand it,languages like Haskell(which I dont know) wrap states into a type that can be passed to pure functions right?

I would restate this as: "In Haskell you write a description of a stateful computation." The "State Monad" is really just the illusion of mutable state, provided by passing the underlying state to each described computation. Actually-mutable state is possible with things like IORef, but these are impure.

page 1