cmc: shortest apl expr to find how each element of a matrix ranks among its distinct values? in other words, replace all occurrences of the smallest value with 0+⎕io, the second smallest with 1+⎕io, etc
the matrix can be assumed to be numeric and real (not complex)
anything interesting, and with better audio than cranking the volume, can still barely hear what the speaker is saying, and also more than just the same presentation over and over. I'm sure many new comers to APL stumbled accross krombergs life in APL, which was exciting and interesting
then there's the interesting history of the APL family of languages, and there's media of the history or people involved
i hadn't seen this page though
what's more is, like videos of ken, I can't find a single video with Arthur whitney. I'd love his thoughts on the langauge, and his ideas that lead to K, and just some general commentary on the design decisions that were and are involved in these languages.
@nathanrogers Btw, we're sometimes struggling to come up with good subjects for our webinars. If you have any subjects you'd like to see, tell us: webinar@dyalog
yeah, stories. why this word, why this symbol, conversations had between this guy and that, people who made decisions about design of the language that had an impact on its use, proliferation, stories and tales and history
and anything for non-domain experts
I'm a software engineer, and I find any discussion I have on the subject of apl family languages to be completely wasted, as most engineers are taught that succinctness = code smell
so demonstrating practical solutions to software problems would be great, as most of the content I see are academic problems or domain problems, i.e. linear algebra, capital E engineering type stuff
web servers/services, ui, other data structures
I'm sure all that stuff is there, as you guys just linked a lot of things that I haven't seen before
but transliterating solutions in some other language to APL would be beneficial to non Engineer, more computer sciency software developers
@nathanrogers simply transliterating things to APL from "regular" languages will almost always result in very bad APL code, giving a very wrong impression
there are also great demonstrations of APL, but not many explanations. Like the life video. when I first saw it, it seemed as though he was blazing through the solution. as I understand more and have watched it since, it makes sense and it doesn't seem so wild. but making videos aimed at people who don't get it with more explanation would be gravy
and show "this is how we would solve this problem in APL
it's a fun video with good humor, but also powerfully demonstrating how the tools we use to think encourage different natural solutions in a given language
and that a more flexible powerful language reveals more direct solutions
@Adám yes, exactly :) didn't see your comment there
the jugalbundi was great. a not-so-simple OOP, even FP problem that takes some thinking, but that still has a direct solution in APL. I'm understanding APL, I can read most of what I see, even trains since I was trying to understand tacit J for a bit, and I think tacit APL is much easier to look at... but I'm having difficulty in solving problems. I'll see a problem,
like "bracket balancing"but think to myself, "well this uses looping and stack pushing and popping... that doesn't seem like a problem well suited to APL" because I don't know the tactic that would be used in APL for this kind of problem
if there is an odd number of terms, they are equivalent in both monadic and dyadic case. For even number the monadic case saves you exactly one byte, J: (%+&1), APL: (⊢÷+∘1)
the dyadic case is like this, APL: ÷∘(2××⍨), J: (%2**~)
only the last term is actually dyadic out of the whole "dyadic" train
@nathanrogers ⍺⍺¨⍵ - execute ⍺⍺ for each of ⍵; ⍸ - get places where that was truthy; 0@ replace those places with 0; ⍵ in ⍵. That ⊢ was out of laziness, that expression could as well be {(0@(⍸⍺⍺¨⍵))⍵}
as a side-note, I've found way too many functions that work fine on multidimensional arrays that I didn't expect to while testing stuff for implementing my APL (including that ⍸)