5 ms·
My attempt at a basic smart algorithm. Not so easy... https://gist.github.com/kballenegger/e275a99d50de2ee07f97 https://gist.github.com/kballenegger/e275a99d50
by SeoxyS 12y ago
My attempt at a basic smart algorithm. Not so easy...
https://gist.github.com/kballenegger/e275a99d50de2ee07f97 https://gist.github.com/kballenegger/e275a99d50de2ee07f97
- idbehold 12y agoWhy do you have conditionals written like this: if (elevator.goingUpIndicator() == true)? Why not just: if (elevator.goingUpIndicator())?
- _lce0 12y agoI believe some people really need think in term of comparations and, for those, adding a "==" symbol make sense, even if the resultant code doesn't make any sense at all!! Also, I can never understand why people write .. if (foo()) { return true; } else { return false; } .. or things like extra parens on conditionals, or weird styles like: return (false); I strongly believe people write as they talk, and talk as they think; which not clearly translates linearly when what you write is code ;)
- JoeAltmaier 12y agoMany languages are expressions (as opposed to statements) including C-like languages. I've always thought that 'return' itself was redundant. If a compound statement was defined to return the value of the final (executed) statement, then functional methods would get much simpler. And remove the need for the '?' operator for instance. e.g. int foo(int x) { bar(x,y); } or x = {if (foo() > 9) true; else false; }
- eru 12y agoYou might like functional languages.
- thedufer 12y agoHave you tried coffeescript? Your examples are pretty close to valid code that does what you want.
- _lce0 12y agoI think one problem with statements-as-expression is that is not always evident which should be their result. for instance: bool r = if (test()) { false; } else { true; } what r should be set to? true or false? I don't see the point of adding such complexity.. it's waaay more clear to be explicit bool r = test(); if (r) { false; } else { true; } or, if you intended the other way bool r; if (test()) { r = false; } else { r = true; } I guess that's why you need to be strictly correct, or highly opinionated, to design a language.
- JoeAltmaier 12y agoI'm missing your point I guess. All those are equivalent? In C an assignment has the value of the RHS, so that doesn't change anything in these examples.
- molo 12y agoThat is unnecessary verbosity. Try this instead: bool r = !test();
- eru 12y agoIn an imperative language, you still might want an optional return to jump out of the middle of some code.
- SeoxyS 12y agoResponding to GP; I think it's a tiny bit clearer with `== true`, but I don't feel particularly strongly about it. I wrote this code without caring too much about style and cleanliness. However, I don't agree that the shortest code is always the cleanest. In JS for example, I've found that wrapping every conditional body in braces even if it's a single statement helps avoid bugs and clear out ambiguity. Also, this code: if (foo()) { return true; } else { return false; } is not equivalent to return foo(); because foo() could return something that isn't boolean. The correct short version would be: return !!foo(); It's far less obvious what is going on here. That said, I'd probably go with: return foo() ? true : false;
- _lce0 12y agohere mine: https://gist.github.com/eridal/7ce55190837801811067 https://gist.github.com/eridal/7ce55190837801811067 side note: why are you using underscore? I wanted to try your code, but doesn't work out-of-the-box.
- SeoxyS 12y agoLoDash actually, not Underscore. Mostly because it's included by the game already. The code should run as-is. That said, it does occasionally get stuck. I think I have a bug with the direction indicators.