240 karma · joined November 18, 2019
Not sure about J, but I feel APL certainly does, at least for me - the symbol set makes it very easy to sketch out a solution.
Part of that ease is the generality of the various operators. That is the reductions and cumulative prefix can be done with any function. For example ⌊\ as cumulative min - useful as Vanessa McHale shows <http://blog.vmchale.com/article/numba-why>
kspalaiologos also shows APL enabling mathematical understanding on her blog <https://palaiologos.rocks/>
An APL equivalent of the J is +\¯1 1[(?100⍴2)] although others exist as there's no exact equivalent for J's { - see <https://aplwiki.com/wiki/From>
Any reason you're not considering APL?
I've personally found it the nicest set of characters - BQN's too spacey for me :)
It's printed on envelopes recently arrived currently.
That's how I heard about this
I haven't used it, but my understanding was all the unix tools were upgraded to work with unicode - don't quite see why it's taken so long if the work was done already years ago
> a parallel universe version of Plan9
I've enjoyed learning about Plan9, how would you say they compare as systems?
Forgive me if misunderstand, but could you not use an array oriented language such as APL, J or K? Whilst they probably don't quite mesh with explicitly controlling the data flow, but don't they and other declarative languages allow the computer to optimise the best path to maximize computational throughput?
Could you explain this? I don't quite understand what the problem is. Do you mean something like sed's regex substitute command?
Indeed, very interesting little book! He's done a talk[0] about it if you want a taste before buying.
For example 'a*b' is any number of 'a's followed by 'b'.
How else would you concisely state that?
Feel petty mentioning this, but you mean you couldn't care less right? As in you care nothing about latest movie, right?
Took me a moment to work out what you were saying, hence why pointing out, although aware small, potentially peevish position on my part
Maybe? Not sure - haven't worked on enough big projects to declare answer
>A new developer is supposed to go through all the codebases and figure out for himself?
Yes to this bit - code should have very clear structure to it with appropriate comments attached, whether that's literate style as JonesForth<https://github.com/phf/forth/blob/master/x86/jonesforth.S> shows, small section header comment or whatever.
It should be very clear what section exploring does - tiny example but cat<http://9p.io/sources/plan9/sys/src/cmd/cat.c> from plan 9 very simple segmented code - deals with file opening in main loop and cat function just reads and prints text
Remember reading this <https://raspi.tv/2015/documentation-and-commenting-your-code> article on importance of comments
Reminds me of Fred Brooks' famous "Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowcharts; they'll be obvious." quote
Discussing code for linked lists for example, having the box and pointer notation for what happens and scenarios very helpful!
[1]<->[2]<->[3] to [1]<->[3] means changing [1]'s and [3]'s pointers and freeing [2]
Starting to explore scheme more and would be interested in some good pointers
Feel part of what makes lisp fascinating is its simplicity and power leading to its place as a test bed for ideas such as continuations and Kanren, a new logic programming language.