You're looking at Less Wrong's discussion board. This includes all posts, including those that haven't been promoted to the front page yet. For more information, see About Less Wrong.

roryokane comments on One thousand tips do not make a system - Less Wrong Discussion

44 [deleted] 30 November 2012 05:38AM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (28)

You are viewing a single comment's thread.

Comment author: roryokane 30 November 2012 05:58:26AM *  17 points [-]

I would call the “systems” you describe “algorithms”.

Looking at your examples, I see that your two “lists of tips” are slightly different. The first list is a combination of tips (aim for 22-30 workers) and facts about the situation (workers mine minerals; that’s how things work). The facts describe the problem you are designing an algorithm to solve. The tips describe solutions you would like your algorithm to aim for when those tips are applicable, but they are general goals, not specific actions. Your second list has no facts, only tips. And those tips are already expressed in the form of if-then statements (actions) that would be part (but just a part) of a larger algorithm.

Comment author: passive_fist 30 December 2012 03:02:43AM *  1 point [-]

Exactly, and Abelson & Sussman describe this problem eloquently in their book, Structure and Interpretation of Computer Programs (section 1.1.7):

The contrast between function and procedure is a reflection of the general distinction between describing properties of things and describing how to do things, or, as it is sometimes referred to, the distinction between declarative knowledge and imperative knowledge.

In the footnotes they further elaborate on this, but the important takeaway point is that in the general case there may be no way to convert declarative knowledge to imperative knowledge. Indeed, if there were an easy way to do this, the whole field of computer programming would be obsolete.