Timeline for i_:0|1 varies in v12.1: incompatible change or bug?
Current License: CC BY-SA 4.0
17 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Jul 1, 2020 at 17:05 | comment | added | John Fultz | Actually the 2.1 screenshot answers a question for me. Because when I saw the FE implementation, which dated back to the very beginning of the box parser, I couldn't figure out why it was done that way...in obvious contradiction to the docs. But your 2.1 screenshot suggests that there was actually a change to the kernel (and maybe the docs as well) from 2.1 to 3.0. Maybe the box parser, which was implemented in 3.0, was based on what would become out-of-date info from the kernel. The box parser was implemented maybe a year before I started working on the FE. | |
| Jun 30, 2020 at 14:05 | history | became hot network question | |||
| Jun 30, 2020 at 12:28 | comment | added | Michael E2 | I have to admit I like the way you can do such things in Mathematica. But after a year or so of being pleased with myself, I tend to think a more straightforward way would be easier to deal with. :) | |
| Jun 30, 2020 at 12:15 | comment | added | xzczd♦ | @MichaelE2 Yeah the two rules solution is more stable and pellucid. (I admit my pattern is kind of ostentation :) . ) | |
| Jun 30, 2020 at 12:01 | comment | added | Michael E2 | With respect to detoae in your first comment, it's a cute use of Times, but, imho, the kind of cute that hides a bug: (2 u)[t] /. detoae — an extremely rare bug that is hardly likely to occur since (2 u)[t] is almost certainly a mistake, though you will find Q&A on site where users want to take a linear combination of functions and plug in x (there was one yesterday or the day before). I just bite the bullet and write two rules, one for derivatives and one for functions, because it's easier to understand. | |
| Jun 30, 2020 at 10:04 | comment | added | xzczd♦ | @sza Aha, here comes another broken example: mathematica.stackexchange.com/a/29366/1871 | |
| Jun 30, 2020 at 9:00 | history | tweeted | twitter.com/StackMma/status/1277889623939825666 | ||
| Jun 30, 2020 at 8:08 | history | edited | Szabolcs | edited tags | |
| Jun 30, 2020 at 8:06 | comment | added | Szabolcs | I think it's v3 that introduced the FE as we know it today. (So it makes sense.) | |
| Jun 30, 2020 at 7:05 | history | edited | xzczd♦ | CC BY-SA 4.0 | added 250 characters in body |
| Jun 30, 2020 at 6:53 | history | edited | Αλέξανδρος Ζεγγ | CC BY-SA 4.0 | added 6 characters in body |
| Jun 30, 2020 at 6:44 | answer | added | Αλέξανδρος Ζεγγ | timeline score: 7 | |
| Jun 30, 2020 at 6:35 | answer | added | Szabolcs | timeline score: 9 | |
| Jun 30, 2020 at 6:26 | comment | added | xzczd♦ | @Szabolcs It's a simplified example of course. I found this because it breaks my code here (see revision 6 ): mathematica.stackexchange.com/posts/132713/revisions . Your guess looks reasonable. Post it as an answer? | |
| Jun 30, 2020 at 6:23 | comment | added | Szabolcs | I wonder how you came across this example. I can't see a reasonable use for either (i_ : 0) | 1 or i_ : (0 | 1). | |
| Jun 30, 2020 at 6:14 | comment | added | Szabolcs | I suspect that this was a bugfix. Try running the same in command-line mode, or try ToExpression["i_: 0 | 1 // FullForm"]. It parses the same way as in 12.1.1. I expect this fixed an inconsistency between the FE's and the kernel's parser. | |
| Jun 30, 2020 at 5:57 | history | asked | xzczd♦ | CC BY-SA 4.0 |