Code: Select all
:IF 0∊⍴from ⋄ from←'kai@aplteam.com' ⋄ :EndIf
rather than:
Code: Select all
:If 0∊⍴from
from←'john.doe@foo.com'
:EndIf
My opinion: as long as the Debugger is not able to jump from one ⋄ to the next (=have a line as the smallest unit of operation) it's not a good idea at all.
The reason is that in the Tracer when you go over that line you have no idea whether "from" is what it was before or was set to "john.doe@foo.com", and I consider this as really bad.
(It would argue that it is also less readable and defeats the purpose of control structure but that's a different matter)
Dyalog appears to have no plans for the foreseeable future to extend the Tracer (viewtopic.php?f=30&t=1549&p=6107&hilit=Tracer#p6107)
Therefore I suggest to not write code like that.
This is not only about debugging, though that's already important enough a point. It's also about tracing through any third-party code in order to find out what's going on: it's much harder with diamondized code.
If saving two lines here really is the issue then I would argue that using a control structure is plain wrong: used in this way they produce a lot of noise without any advantage.