« first day (2204 days earlier)      last day (440 days later) » 

2:49 AM
@xpqz Nifty. Mind sharing a link? I couldn't find it on your GitHub after a quick scan.
 
 
4 hours later…
6:51 AM
Given some input and a list of trims, we can perform the trims with a simple reduction, e.g. (⊂'bar')≡↓⌿1 1 1,⊂'foobar'.
However, this falls over on the boundary when the argument to ↓⌿ is an empty vector.
We get a domain error, presumably because Drop Reduction doesn't have an identity?
 
@B.Wilson My first attempt is here: github.com/xpqz/skalpel — it implements perhaps 70% of functions, and a small handful of operators. It’s a traditional recursive descent parser. I’ve abandoned play on this version in favour of a BG approach, but this isn’t uploaded yet.
 
Duh. 0↓ is a noop, so we can ensure the argument is never empty.
(Just Rubber Ducking here, I guess.)
@xpqz So autodidactical purpose. Very nice.
The Permission Form you link to cracked me up: ngn.codeberg.page/funny/reg.html
 
7:23 AM
So, slowly, I find myself mentally composing APL expressions from left to right. At first, I would essentially compose from right to left, following the flow of data through the expression.
Experientally, the latter feels like exploring and/or playing around with some blob of data, slowly building up pieces to munge it into whatever form you're after.
However, when I'm able to pull off the former, it's when I have a clear top-down conceptualization of the whole expression, so I start by writing pieces, making little mental assertions about the form of right-argument.
 
7:57 AM
ARGH. Empty vectors are the bane of my life.
 
 
4 hours later…
12:09 PM
Empty arrays can only be of numeric or character, right? ie '' and
 
12:26 PM
@sloorush They also have shape and depth: 0 1 2 3 4⍴⊂'abc'
Basically, an empty array just means 0∊⍴A.
Since (≢∊A)=×⌿⍴A, any 0 in the shape means we have no elements in the array, i.e. it's empty.
 
12:53 PM
Okay, so the shy result of all the forms of Assignment () is just the right-hand argument. Simple enough.
 
 
1 hour later…
2:04 PM
Is there a way to send SIGSTOP to the CLI interpreter from inside?
Typically, you can temporarily pause a program by sending it SIGSTOP, which is typically bound to ctrl-z.
However, it appears that the CLI interpreter is in raw mode and manually handling ctrl-z.
Basically, I just want a quick way to drop back into shell, without having to save the workspace, close it, and then load it all back in a new session.
 
2:36 PM
Correction. The interpreter is in raw mode and not handling ctrl-z in any special way at all, i.e. 26=⎕UCS'<ctrl-z>'.
 
 
3 hours later…
5:14 PM
@sloorush No, there are infinitely many empty arrays, and even infinitely many empty vectors, all different from each other, e.g. 0⍴⊂0 ' ' and 0⍴⊂2 2⍴0
 
 
2 hours later…
6:52 PM
@B.Wilson tmux it
otherwise, you might have to patch kernel for being about to send the signal
 
 
2 hours later…
8:27 PM
@MetinErsinArıcan Hi there, interested in APL?
 
8:38 PM
CMC: Convert a "deep mask" to reach indices. E.g. 2 2⍴(0 0 0)(1 0 0)(0 1 0)(0 1 0) to ((1 2)1)((2 1)2)((2 2)2)
 

« first day (2204 days earlier)      last day (440 days later) »