HN user

rkts

277 karma
Posts1
Comments103
View on HN

If your claim is that the book you have recommended ... is the last word on the subject

That would be an audacious claim, considering the book is rather old and only 200 pages. I recommend it because it is a model of concise and accessible prose, good for laymen (like me) who want to get the basic facts with minimal fluff. As far as I know, none of its main points has been invalidated by intervening research. But I can see why its blunt statements of fact might be unpalatable to some.

I have not read Stanovich's book but it does not appear to be an appropriate introduction to the subject of intelligence. I suspect you recommend these "newer and better" books because they suit your ideological purposes, not because they are better researched or more informative.

There is a lot of data on this question, and it flatly contradicts Asimov's claims. IQ scores correlate not only with academic performance but also with job performance as well as others' intuitive impression of how "smart" a person is. That's why the army gives intelligence tests to new recruits: high-IQ soldiers (and mechanics and carpenters) do better, on average, than their low-IQ counterparts. Other types of tests, such as the hypothetical test devised by Asimov's mechanic, either have no predictive power or are predictive only as far as they correlate with g, or general intelligence, which is currently best measured by IQ tests. The physiological basis of g is unknown, but it is highly heritable and correlates with a number of physical variables such as brain volume and myelination.

If you want to learn more about the subject, I suggest this book, which concisely disposes of these and other popular anti-IQ arguments:

http://www.amazon.com/Question-Intelligence-IQ-Debate-Americ...

It's pretty simple. People who think in personal, emotional terms tend to explain the world that way, while people who think more logically/mechanically explain the world that way. That's where religion and science, respectively, come from.

No one has proved that technology won't one day make everyone grow to 6 feet and live 200 years. In fact that could quite plausibly happen. But you'd still be a fool to count on it.

Course catalogs tell you nothing. They're stuffed with appealing descriptions of courses which may or may not end up on the schedule, and when they do, may or may not resemble the description in the catalog. Not to mention the teachers' knowledge level; I once attended a cryptography lecture by a professor who didn't know the difference between public and private keys...

If you want to learn, then going to a Respected Research University is a waste of time and money. The quality of teaching at such places is often pathetically bad. Prestige comes from research, not teaching, and every dollar spent on research is a dollar not spent on teaching. You'll learn more for your money at a middling state school or private college, in part because these places attract professors who actually like to teach.

Predictable objections:

1. I had some great teachers at RRU: I did too. But they are the exception rather than the rule.

2. You'll make more money with a degree from RRU: The statistics don't support this. Harvard students end up with the same average income as students who get admitted to Harvard but then go to a less prestigious school.

3. You'll meet more smart people at RRU: Yes, but you can find smart people anywhere, and a few years of college classes is as good a filter as any admissions department, at least in technical majors. The kind of people you meet in a topology course is about the same no matter what school you're at.

I think the most important thing is to find a place where you'll fit in and be happy for 4-5 years. Visit a few places, and go with your gut.

See also: http://www.paulgraham.com/colleges.html

Is 0 Odd or Even? 17 years ago

Zero is not defined to be even. A number is even if it's twice some integer. Zero is twice an integer (namely 0), so it's even.

If you try to bring personal intuition into mathematics, you'll just repeatedly shoot yourself in the foot

I disagree. Intuition should always be foremost in mathematical understanding. You may have gotten a different impression from your math classes, and that IMO is a consequence of bad teaching.

I had a similar problem with accepting that 1/inf = 0

As you should; the statement is false. The limit of 1/x as x->infinity is zero, but there is no x at which the quotient "reaches" zero. In non-standard analysis, if x is positive infinite, then 1/x is positive infinitesimal, meaning it is infinitely close to, but still greater than zero.

Haskell does well in benchmarks but this hides the fact that its performance is very unpredictable. Try it and you'll see what I mean. Also, Common Lisp does well in benchmarks but only after a lot of declarations are added which make the code nearly unreadable.

Personally I get the best results from the MLton SML compiler. OCaml is also pretty fast and more practical. YMMV.

Body size varies more within dog breeds than between them

I have never understood what this means. "Within-group" variation can be quantified as standard deviation (among other metrics). How do you measure "between-group" variation? Sample the group means and find the standard deviation? But that's obviously meaningless.

C++ version:

  template<typename T>
  void zap (T (*f)(T x), T &x) { x = f(x); }
Example:
  int square (int x) { return x*x; }

  int foo[5] = {1,2,3,4,5};

  zap<int>(square, foo[3]);   // foo is now {1,2,3,16,5}
Admittely, the <int> is a little ugly, but that can probably be fixed with Hindley-Milner (or just plain dynamic typing).

behaving in ways that maximise achievment of your goal(s)

But that's exactly what IQ tests measure, at least in the context of academic and job performance. IQ tests are used because they are the most economical predictor of achievement in certain areas.

Stanovich seems to be saying that he can predict some kind of achievement (or "well-being," whatever that is) by examining people's susceptibility to certain mental quirks like the sunk cost fallacy. Ok, it's a fine hypothesis, but where's the data?

So how is rationality defined and how is it measured? Does it correlate with any important life outcomes such as income, academic performance or law-abidingness? He says that irrationality can be "fixed." Does this fix result in measurable changes in peoples' lives?

He says that IQ and rationality are "very imperfectly" correlated. What is the number, exactly?

You seem pretty determined to persuade us that IQ is unimportant. I don't claim to be an expert on the subject, but HN readers should know there's more to the debate:

http://www.sullivan-county.com/id5/murrey.htm

Our culture does something to screw most of them up

If that's true, there ought to be some culture that doesn't have this problem. Can you name one?

Typical nerd. I love learning, so everyone else must too! Fact: the majority of kids don't give two toots about learning and never will. Most kids need order and discipline. The follow your passions message is great for those with good judgment and disastrous for those without. http://www.vdare.com/sailer/iq.htm

My theory:

Everyone has two brains, a "people" brain and a "stuff" brain. Most people use them roughly equally, but some use one more than the other.

When we were kids, my sister and I used to argue because she thought that her stuffed animals had feelings, and that birds had conversations about specific things. She was always attributing human emotions to things that didn't have them. Even now, she does it with her cat: if the cat trips and falls and walks away with its head down, my sister will say, "Aww, she's embarrassed!" -- even though cats don't understand embarrassment and the cat is probably just tired.

Unsurprisingly, my sister is religious and I'm not. Religion is what happens when people misapply their people brain to thinking about stuff. They get a vague sense that the world is alive, and then explain it in whatever concrete terms their culture provides (God, in our case).

Nerdiness is what happens when people misapply their stuff brain to thinking about people. Nerds misinterpret other people because they fail to attribute emotions to them. However, unlike religious people, nerds usually realize at some point that they have a problem and can try to change. Except in extreme cases, religious people suffer no consequences for being wrong, so they have no reason to change.

Since women tend to be more interested in people and men more interested in stuff, this also explains why women are more often religious, and men are more often nerds.

Ok, you're right. That is a better explanation of monads than the one I gave.

I intended my example to represent cases where you want real mutation, in the sense of modifying a data structure in place. Your code using the State monad, if I understand it correctly, just abstracts functional updates in a way that looks like mutation.

Anyway, my intent in my original comment was simply to explain the practical consequences of pure functional programming. That, for instance, if you have a pure function that you want to randomize, this change must be reflected in all the code that depends on it. My intuition is that this is a bad thing, but I don't have enough experience to say for sure. However, it is apparent to me that purity

1. adds a lot of complexity to the language, and

2. has no clear practical benefits,

which is why I say it's a waste of time.

Consider the getLine function:

  getLine :: IO String
getLine takes nothing as its input--not the state of the world, or whatever, but nothing--and produces a string that's inside an IO monad. To all appearances, it's an impure function. But because the String is inside a box (so to speak) you can't peek at it--instead, you can only give it to another function, provided that function also returns a box you can't peek into.

In effect, this creates two classes of functions. Some, like getLine, can have side effects, generate random values, look into other boxes, whatever. These are technically "pure" in a mathematical sense since their outputs are always inside identical boxes, but in practice they behave just like impure functions, and you reason about them the same way. The rest have more restricted capabilities, and because their values aren't inside boxes, the compiler can verify that they return distinct values in a pure manner.

So, for an extreme example, consider this function:

  foo (x) { x++; return x; }
In Haskell foo would return "IO Int," which means the "Int" may be produced impurely. Actually, the integer is produced in a pure manner, so it would be fine for foo to return a plain Int. But the way Haskell determines purity is too crude to figure that out: all it knows is that foo depends on a mutation, which may make the output impure. Impurity is contagious, so foo "catches" it from ++ and thus has to put its output in a box.

Hence, the typical description of pure functional programming as "functions only transform inputs to outputs" is only true in the most trivial mathematical sense, and has no practical import. Pure functional programming really means writing a crude proof that a certain subset of your program is pure, and the compiler checking the proof for you.

(Disclaimer: I understand that this is a very vague high-level description of monads, that monads can work in other ways and do many other things, and that purely functional languages can handle state/side effects/etc. in other ways. It's a complex issue and I'm just trying to convey the way that it usually works in practice.)

Kool-Aid-free answer:

"Functional programming" can mean one of three things.

1. Higher-order programming: the use of higher-order functions to make code more general/compact. Since you know Ruby, you're already doing some higher-order programming, but you may not understand it well enough to take full advantage of it. The best way to learn higher-order programming is to read SICP.

2. The use of immutable (aka persistent, nondestructive) data structures, i.e. data structures that can be updated without mutation. For example, linked lists allow you to prepend an element without changing the original list. This makes code cleaner in some cases and has advantages for concurrency. For specifics, look up Clojure.

3. Functional purity, aka referential transparency: the property that, for any input x, a function must always produce the same output x'. That is, all functions must be functions in the mathematical sense of the word. In practice, this doesn't really mean eliminating impure functions, but rather partitioning your program into "provably pure functions" and "possibly impure functions," using a clever hack (monads) to ensure that the output of possibly-impure functions is invisible to the provably-pure ones.

So, supposing you had a pure function whose behavior you wanted to randomize, you couldn't just throw in a call to the random() function, but would also have to convert it and all the functions that depend on it into impure (monadic) functions, replacing all function calls with the bind operator (>>=). It's quite complicated and I have never found a reason to believe it's a good idea, other than some theoretical stuff about "safety" and compiler optimizations that make your program 2% faster. I suggest not wasting your time on it.

You sound like my Sunday school teacher. "All of us draw blasphemous conclusions from time to time. I've done it more than once. The onus on you isn’t to wallow in guilt -- it’s to be aware of these deep-buried attitudes, and consciously try blah blah blah."

I listened to this speech a couple hundred times before it dawned on me: I was having those blasphemous thoughts because my Sunday school teacher was, in fact, full of baloney, and that speech was his way of preempting my critical thinking.

If you know an idea is false, you don't have to work to suppress it. Your brain is good at doing that for you. I think as a rule, if someone tells you to suppress an idea, you should do the opposite and follow it further. Even if it shocks you.

I was thinking of posting a question very similar to this one, though the details of my situation are pretty different.

See, I've been alone for most of my life. Alone in the sense that I've only ever had two or three real friends, and I often go for weeks without having a conversation with another person.

As a kid I was fine with this. I was the guy who always sat by himself during lunch and recess, and nobody bothered me and I felt fine. I stayed the same until my senior year of high school, when I was struck by a burning need to make friends, meet girls and stop being alone all the damn time. I made some friends that year, but we were high school seniors, so we all moved off to college and I never heard from them again.

Now I'm in my third year of college, I have no friends and I can't believe how hard it is to meet people. Though I guess the problem isn't meeting people specifically, but getting the acquaintances I make to turn into friendships. I just don't seem to really click with anyone.

"You should join an organization for something you're into!" Well, I've looked but 90% of the organizations I see are racial, religious or political, and the rest just don't interest me. If I could find, say, an OCaml or Lisp programmers group, or an early music society, I'd be thrilled, but of course there isn't one. Maybe I'm just a narrow person, I don't know.

Hmm... I'm not sure now why I'm posting this, but I typed it so what the hell. submit