Can every recursion be converted into iteration?

Can you always turn a recursive function into an iterative one? Yes, absolutely, and the Church-Turing thesis proves it if memory serves. In lay terms, it states that what is computable by recursive functions is computable by an iterative model (such as the Turing machine) and vice versa. The thesis does not tell you precisely … Read more

What does ‘foo’ really mean? [closed]

See: RFC 3092: Etymology of “Foo”, D. Eastlake 3rd et al. Quoting only the relevant definitions from that RFC for brevity: Used very generally as a sample name for absolutely anything, esp. programs and files (esp. scratch files). First on the standard list of metasyntactic variables used in syntax examples (bar, baz, qux, quux, corge, … Read more

When should I use Debug.Assert()?

In Debugging Microsoft .NET 2.0 Applications John Robbins has a big section on assertions. His main points are: Assert liberally. You can never have too many assertions. Assertions don’t replace exceptions. Exceptions cover the things your code demands; assertions cover the things it assumes. A well-written assertion can tell you not just what happened and … Read more

Real world use cases of bitwise operators [closed]

Bit fields (flags) They’re the most efficient way of representing something whose state is defined by several “yes or no” properties. ACLs are a good example; if you have let’s say 4 discrete permissions (read, write, execute, change policy), it’s better to store this in 1 byte rather than waste 4. These can be mapped … Read more

Acronyms in CamelCase [closed]

There are legitimate criticisms of the Microsoft advice from the accepted answer. Inconsistent treatment of acronyms/initialisms depending on number of characters: playerID vs playerId vs playerIdentifier. The question of whether two-letter acronyms should still be capitalized if they appear at the start of the identifier: USTaxes vs usTaxes Difficulty in distinguishing multiple acronyms: i.e. USID … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)