For some reason, I have a perfect recollection of my early programming mistakes. My first was not understanding why a perfectly reasonable test like this didn't work:pic.twitter.com/rSuqFdmGMD
This is the legacy version of twitter.com. We will be shutting it down on June 1, 2020. Please switch to a supported browser, or disable the extension which masks your browser. You can see a list of supported browsers in our Help Center.
You can add location information to your Tweets, such as your city or precise location, from the web and via third-party applications. You always have the option to delete your Tweet location history. Learn more
Add this Tweet to your website by copying the code below. Learn more
Add this video to your website by copying the code below. Learn more
By embedding Twitter content in your website or app, you are agreeing to the Twitter Developer Agreement and Developer Policy.
| Country | Code | For customers of |
|---|---|---|
| United States | 40404 | (any) |
| Canada | 21212 | (any) |
| United Kingdom | 86444 | Vodafone, Orange, 3, O2 |
| Brazil | 40404 | Nextel, TIM |
| Haiti | 40404 | Digicel, Voila |
| Ireland | 51210 | Vodafone, O2 |
| India | 53000 | Bharti Airtel, Videocon, Reliance |
| Indonesia | 89887 | AXIS, 3, Telkomsel, Indosat, XL Axiata |
| Italy | 4880804 | Wind |
| 3424486444 | Vodafone | |
| » See SMS short codes for other countries | ||
This timeline is where you’ll spend most of your time, getting instant updates about what matters to you.
Hover over the profile pic and click the Following button to unfollow any account.
When you see a Tweet you love, tap the heart — it lets the person who wrote it know you shared the love.
The fastest way to share someone else’s Tweet with your followers is with a Retweet. Tap the icon to send it instantly.
Add your thoughts about any Tweet with a Reply. Find a topic you’re passionate about, and jump right in.
Get instant insight into what people are talking about now.
Follow more accounts to get instant updates about topics you care about.
See the latest conversations about any topic instantly.
Catch up instantly on the best stories happening as they unfold.
For some reason, I have a perfect recollection of my early programming mistakes. My first was not understanding why a perfectly reasonable test like this didn't work:pic.twitter.com/rSuqFdmGMD
Surely parenthesis will fix it, right? But no:pic.twitter.com/ziPudfLLFh
The problem is that equality doesn't distribute over "or" in programming languages, like it does in human language and mathematics. So you have to write:pic.twitter.com/CaO1K7mdEC
That's silly. Computers are fast; can't the compiler make that work? It turns out there's a family of languages that support commutativity of "or" and many other expected properties of logic, writ large: functional logic languages. But they never really left the research labs.
In a functional logic language, "a or b" isn't an operation on booleans. Rather, it creates a backtrack point where the current test you're performing is run twice: first with "a" and then, if necessary, with "b".
In these languages, failure isn't represented by a boolean called "false". Rather, it's a control-flow construct. In an "if" statement, failure runs the next backtrack and, if there are none left, jumps to the "else". Hence you can simply write:pic.twitter.com/O6qFJVXMhX
I continue to want this almost every day. But what I really really want is the ability to write: if (5 <= X < 7)
That would work if these operators were right-associative and either failed or produced their right-hand value. This is exactly how they'd work in a proper functional logic language.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.