At Dyalog ’15 John Scholes and I presented proposals for future operators cut, under, and merge. Following the release of the video of this presentation, we received some feedback from a user. Our response to the feedback may be of wider interest.
- It’s early days yet for cut, under, and merge (they are tentatively planned for release in version 16.0), and one of the reasons for that is so that we can receive feedback from the user community. So thank you for your comments.
- We take our inspiration from many sources, and while it’s true that J has cut, under, and merge, cut saw the light of day in Rationalized APL (1983), under in Operators and Functions (1978), and merge in Rationalized APL (1983) again. And even before that, the ideas have been in mathematics or functional programming for many years.Wherever the inspiration came from, we don’t take them just on faith, just because they are in J.Even now, even in these early days, cut, under, and merge have undergone a vigorous internal debate. The discussion is informed by the experience in other contexts, J or otherwise.
- We are interested in what you think are the “few fundamental ideas expressed by a handful of mathematical symbols”, what you say is the definition of APL. From our perspective we have not violated and will not violate what we think are the fundamental ideas. But perhaps our set of fundamental ideas differ from yours?
- No one here is thinking of adopting the J spelling scheme (with the dots and colons).
- The Dyalog development team are in unanimous agreement that dfns,
⍺⍵
-functions, are A Good Thing. As we see it, the recent and proposed additions to Dyalog APL have only enhanced the elegance and utility of dfns. For example,{(+⌿⍵)÷≢⍵}⍤r
to compute the mean of not just vectors but subarrays of a specified rank,{⍺⍵}⌸
to compute the unique keys and the corresponding indices,{⍺(+⌿⍵)}⌸
to compute the unique keys and corresponding sums, and{⊂Cut ¯2⊢⍵,','}Cut ¯2 ⊢x~⎕av[4]
to partition CSVx
into its columns and cells. - Cut, under, and merge are described and documented in discussion papers accompanying the video. If you have not already read them, they can be found in the Dyalog ’15 webpage and specifically here. Please tell us what more can be done as far as documentation, and what parts specifically are unclear.
- We have previously (and recently) examined the question of adding quaternions to Dyalog. Currently there are no plans to add them.
- Finally, examples of under from everyday life. Of course the processes involved can be composed, so that for example “dinner” can be:
open the fridge take the food close the fridge
but it can also be a more elaborate:
take plate from cupboard open the fridge take the food close the fridge put food on plate open mouth put food in mouth close mouth clean plate put plate back into cupboard
As remarked in the Dyalog ’15 presentation, once you are attuned to it you can see under everywhere, sometimes in subtle ways: Ashes to ashes, dust to dust.
The comment leading to all these responses seems worth viewing. Those experienced with J know the deep roots it has.
The original comments do not provide more useful information than what’s in the blog post.
You call it ‘triadic’ and I start to think this is a digitally controlled transistor model.
Please explain. What is the “it” that’s being called triadic?
Sort of how a transistor amplifier has three inputs, and then a signal applied to it. same with these proposed features like [I think this is correct]: (2 2 ⍴ 2)(¯3⍤⊂) (4 4 ⍴⍳16)
Where ¯3⍤⊂ is the three inputs to a transistor.
4 4 ⍴⍳16 is the signal being passed,
and I guess the 2 2⍴2 would be some sort of filter on the signal.