Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Because it's pseudocode that runs. Look at how many times non-python programmers have written code examples and someone says to them that "that's almost identical to python."

This is a very easily testable theory.



Yes, it's easily testable. Just write a pseudocode switch statement.

That's almost identical to python, but how do you make it exactly identical? Nobody knows.

http://www.python.org/dev/peps/pep-3103/

Tested. Found false.

Now how about Scheme? I recently tested that myself by using a case expression, a syntax I rarely use. I didn't have to look in R5RS. I just put the parens where they would naturally go for the most obvious syntax tree, and it worked.

For someone steeped in Algol-like languages, Python will be easy to get started with. Scheme/Lisp takes longer to get started, but once you get it, you don't have to keep going back to the documentation. It just makes sense.


Beyond idiotic. Clearly I'm not drunk enough for that inanity.


  case beercount
       0 1      "inanity"
       2 3 4    "good sense"
       else     "genius"
Drink all you want. The pseudocode above still translates into Scheme in a straightforward way. The Python community still can't agree how to translate it.


The python way is to use a dictionary, or in simpler cases, if statements.

Your example falls short because case statements aren't such an obvious method of solving the problem as you think. They are nothing more than an artifact of the machine that C pushes up to you.


Some functions map multiple elements of their domain to single elements of their range. My pseudocode is a concise way to express such a function. It is not an artifact of the machine.


It's still absolutely no more difficult with if statements, and with if statements you don't have to worry about error prone fall through. There is no lack of consensus on how to do this. It's very obvious.

Concise? I've got some perl code for you.


There's no error-prone fall through in the code I posted. You would advocate the following pseudocode?

  if beercount is 0 or 1 return "inanity"
  if beercount is in 2,3,4 return "good sense"
  return "genius"
I wouldn't advocate that. I think my first version is more concise in a clear way, not in a line-noise way.


your formating fucking blows.


That's because pseudocode conventionally uses indentation to denote structure, and Python does too. This explanation is trivial because pseudocode is trivial. The sort of code that can be meaningfully written as pseudocode is easy to understand in any language, and so it doesn't matter.


No.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: