« first day (1223 days earlier)      last day (1414 days later) » 

12:01 AM
@AviF.S. Right, it can be confusing because the language engine and the interface are so tightly integrated. The editor and tracer are part of the language, and the language engine maintains a "mental image" of what windows are open, so you can manipulate windows under program control. The language engine then tells RIDE what to show the user, and RIDE reports back to the engine what buttons the user pushed. In that sense, RIDE is "dumb"; it has no notion of what's actually going on.
 
RGS
@AviF.S. (never used RIDE)
 
Install Acre, open up RIDE, and assign some hotkeys to "Reformat" and "Fix" (I use Ctrl+J/K), then ]ACRE becomes your command palette to manage APL files/projects and you don't need pretty much anything else. This was the exact setup to develop my Advent of APL.
 
12:39 AM
@Adám The 18.0 doc's Atop and Over have their paragraphs badly mixed up...
 
 
4 hours later…
4:15 AM
Also waiting for feedback for:
0
A: Sandbox for Proposed Challenges

BubblerExplicit-ify APL expressions involving trains code-golf parsing apl Related: Clearly parenthesize APL trains Background In the most basic form, APL has two kinds of tokens: arrays and functions. For this challenge, we will use a lowercase alphabet a-z for an array, and an uppercase alphabet A-...

 
 
1 hour later…
5:32 AM
@Bubbler ikr ;-)
 
6:10 AM
And some more questions regarding APL Wiki pages:
- Base/Represent(Antibase) vs. Encode/Decode
- Grade Up/Grade Down (two pages) vs. Grade (one page)
- Transpose/Dyadic Transpose(Rearrange Axes) vs. Transpose (one page)
- Format/Dyadic Format vs. Format (one page)
- Circle vs. Circle function vs. Circle (function)
 
@Bubbler Encode and Decode (separate pages). Grade (one page, cf. Reverse). Transpose (one page because it eases understanding), Format (ditto), Pi Times and Circular (two — other than symbol, unrelated — pages). Don't forget to include the alternative names in the article (except Circle which is the glyph name) and as redirects.
 
RGS
7:07 AM
@Adám why do you seem happy about it?
 
7:23 AM
@Adám One more thing: Should Inverse be a separate page from Power operator? (And if so, should it be on "APL built-ins" template?)
 
@RGS I'm not happy about it. That'd be ":-)". I was saying "I know, right?" as in "Yeah, I too find this bothersome", but the phrase (falsly) implies that not much can be done about it, which is of course not true, so I said it with a wink ";-)".
@Bubbler I don't think so, but it certainly deserves its own heading on the power operator page (btw, is ⍣g and ⍣k the same operator?), mentioning that not all implementations that have support negative counts.
 
RGS
8:00 AM
@Adám I understand
I was thinking that two possible themes for future apl cultivations could be plotting things from within APL and creating basic GUIs; don't know if these fall out of the Cultivation's scope or not
 
@RGS Ploting things is a nice idea, and can be done cross-platform using SharpPlot. GUI is a difficult beast. The only built-in cross-platform method is using HTML, but there's really no APL to it then, and the interactivity is complicated. There's MiServer, though. I guess I could give a MiServer intro course…
 
RGS
See? there you go, two possible ideas! feel free not to do any of them tomorrow as I can't show up tomorrow ;-)
 
 
1 hour later…
RGS
9:14 AM
@user8864368 hey there, are you interested in talking about APL?
 
9:27 AM
@RGS Dimitri Lozeve has been lurking here for a while.
 
RGS
@Adám I know, I was trying to get him to talk :p
 
Oh, OK. No worries then.
 
RGS
@Adám you sent me this link one of those times that Dimitri popped up
 
Yes, but I've mistaken user1234567-type names before, speaking to people as if they were unknown. I wrongly suspected you of doing the same. Sorry.
 
RGS
@Adám Don't worry! I saw him and thought he was an unknown user ⍨ but then I recognized the GH name on the SE profile
that is why I rephrased the usual "interested in APL" to "interested in talking about APL" ;)
 
 
1 hour later…
10:42 AM
@Tsundoku Hi there. Interested in APL?
 
10:59 AM
@Adám I don't know anything about APL. I just popped in here because I found this room as listed under "Events" and I was wondering if I could learn anything about how you organise events that I could use to help rebuild the community on another SE site.
 
RGS
(@Tsundoku why is your name blue?)
 
@RGS Mod.
 
Right. I am a mod on two other sites (and running in the election on a third site).
 
@Tsundoku Well, this chat room is quite active due to other activities, and then I ask a few people if they are interested in an event, and what time suits them. I wouldn't say the Events make the community, but rather that the community makes the events happen.
 
RGS
^ +1
 
11:06 AM
@Adám So how do you deal with the community being spread out over (presumably) many timezones? Do you cycle through timeslots that suit specific timezones better?
 
@Tsundoku No, I just try to find the best time (usually mid-afternoon UTC) and then I save the event transcripts using the "save conversation" feature.
 
@Adám Is the timeslot is simply decided based on chat discussions? (I didn't see anything about this on meta, and on Literature SE we haven't been able to find a time slot for chat discussions.)
BTW, if you'd rather move this discussion to a different chatroom because it's rather specific, that's OK.
 
11:32 AM
@Tsundoku Yes. There'll always be people that can't make it, but once it is a recurring event, people seem to find their way.
 
Thanks. That's good to know :-)
 
@Tsundoku Another useful thing is advertising the events outside of the room. It could be through community ads (we have ads for this room) and even outside SE. For the latter, it is a bit bothersome that newcomers can't participate without explicit write access, so I often have to ask a mod to grant this. Would be nice if ROs could grant low-rep users access too.
 
Events can be announced in the site's side bar; we do this for the reading challenges on Literature SE. We haven't thought about announcing events on other SE sites, though we have (sometimes) announced our reading challenges on Twitter.
I have never done this, but giving low-rep users access to the chat room looks a bit like a chicken-and-egg problem: how do those users communicate to a mod they would like to access the chat?
Anyhow, I need to go offline for a bit.
 
@Tsundoku Notice the room description. Also, I look out for user1234567s in the list of people, and write to them, saying they need to email me if they want access. This is also repeated in the wiki for the room's topic.
 
 
3 hours later…
2:36 PM
finally implemented ⍢(N↓)/⍢(N↑) (only for vectors) and ⍢↓ :D
(of course a better way to do the last example is '\'∘,⍢((⍳5)⌽) 5 4⍴⎕A but that's the first example i thought of)
 
3:08 PM
@dzaima Cool. However, f¨⍢↓matrix is ⍤1 :-)
adam@Adam-asus:/mnt/c/g/dzaima/APL$ ./build
./build: line 4: cd: $'src\r': No such file or directory
error: invalid flag:
Usage: javac <options> <source files>
use --help for a list of possible options
: Permission deniedev/null
mv: cannot stat 'APL.jar': No such file or directory
@dzaima halp ^
 
@Adám so it is, but neither does it help show ⍢↓ nor is implemented anyways
@Adám before anything else, what does javac --version give?
 
@dzaima javac 11.0.6
 
@Adám cool. imma try rebuilding from fresh (also i forgot to push the commit adding the above :|)
fresh clone compiles successfully for me, using 11 too, odd
 
@dzaima Oh well, I nuked it, recloned (same error), did cat build, and then entered each line by hand. Now it works ¯\_(⍨)_/¯
@dzaima Ugh, you've implemented ↓Y like in Dyalog APL.
 
@Adám strange. maybe git cloned with windows newlines, and bash scripts hate those?
(i'm pretty sure that's the case actually - 'src\r' - \r is the windows newline thing)
 
3:18 PM
@dzaima Indeed.
 
@Adám what's the alternative?
 
@dzaima ⊂⍤¯1 as it should have been, because then you can use ⍤k to specify what you want. It is currently implemented as ⊂⍤1 which is rather useless for anything but matrices (where it is the same as ⊂⍤¯1), and it forces you to use ⊂[k] instead.
 
@Adám ah so it isn't just me who doesn't like its behavior, i just never considered changing it. in other words, this
 
@dzaima ↓⍠'2.0' 2 3 4 5⍴⎕A Wat?
 
@Adám sorry, ↓⍠'2.0'⊢ (second version of ) :p
 
3:25 PM
Yeah, well, I'm kind-of looking at dzaima/APL as a Dyalog APL that has (i.e can be, due to lack of userbase) been rationalised.
 
@Adám that's mostly my intention too. i've caught myself doing ↑¨↓↓X way too many times, so redefining is definitely a thing i'm considering now
 
@dzaima And/or better: add Rank.
 
@Adám there have been a couple cases of me needing it, i just really don't like implementing builtins that require properly dealing with cells due to those being almost always implemented with trial-and-error :p
 
@dzaima Do you have the ability to define new primitives in terms of existing ones (a.k.a. "magic functions")?
 
@Adám i do have the ability to hard-code built-in calls (technically i could also evaluate APL code for a built-ins impl, but that'd be slower (especially if dfns are involved))
 
3:32 PM
@dzaima But maybe worth it for Rank?
 
@Adám what implementation would you suggest?
 
@dzaima I can get you the model we originally used for Rank.
 
i'm definitely up for adding it as a temp solution (reminds me of this, and look, it's still there (and even isn't correct for higher rank inputs))
 
 
1 hour later…
4:40 PM
@Adám this seems kind of unfinished and/or broken
 
@dzaima The HTML interactive documentation is a hack. The source is really supposed to be printed as a book.
 
 
1 hour later…
5:48 PM
@Adám Ah, thanks for the explanation! That some engine should maintain a "mental image" of open windows seems perfectly intuitive. Just surprised that that engine is called/part of the language engine! I don't think I know of any other language that ties the REPL-related prompts into the language. For instance, I'm pretty sure the extra commands equipped with iPython/Jupyter and GHCi (Haskell) are not considered part of the language itself.
 
@AviF.S. Right (Dyalog) APL is pretty unique in that.
 
Speaking of which, if it is part fo the language, as much as anything else (unless I'm misunderstand what a 'language engine' is): How do I put ]box -trains=tree into a dfn?
 
@AviF.S. In other words, you want to call a user command from a function
 
A dfn calculates a certain something, which I always presumed was stored as whatever and then output to RIDE depending on the settings of it
But it seems automatically stored in the following notation as a character matrix, so that it can't be changed after it's calculated, regardless of external settings...
∇{...}
     ∇       ∇{...}
     ∇          ∇{...}
     ∇       ∇{...}
     ∇        ∇{...}
     ∇
@Adám Ugh, darn you! I can't always figure out how to search for such things in APLCart. Thanks!
I do remember you saying the system commands are simply syntactic sugar for ⎕SE., so it should've occurred to me in retrospect!
Random question I've come across; didn't find in AC: How to have a function do {⍺←⍵}?
The best I have is: {⍎(⍕⍺),'←',⍕⍵}, but it's pretty ugly...
And also, I can't figure out why Cv {⍺←⍵} Xv executes just fine. It should be nonsensical to do Cv ← ..., but it doesn't yield an error. I can't figure out what it's doing, though. Seems to have no effect...
 
6:08 PM
@Adám Also, for some reason the function still displays in the default manner pasted above, despite it starting with the line _←⎕SE.UCMD']box -trains=tree'
 
@AviF.S. that's a special syntax - setting a value of in case there isn't any. see e.g. {⍺←0 ⋄ ⍺-⍵} as a function reimplementing both monadic & dyadic minus
 
@AviF.S. That's almost the right way to assign to a variable under program control.
 
@dzaima Oh yes, of course! Thanks for the reminder :)
 
@AviF.S. Indeed, when you call it dyadically, it has no effect, as ⍺←⍵ (almost) means 0=⎕NC'⍺':⍵ (except execution continues with the next statement).
@AviF.S. You need another modifier -fns=on, but if you just want to display a single value with boxing, consider copying disp from dfns.
 
@Adám Wow... this is so embarrassing ⍤. I need to get better at searching AC...
'variable assignment' does bring up just that. For some reason, it only occurred to me to look up assign/assignment which pulls up like 30, which I skimmed and didn't see.
@Adám Yes of course, it all came back! Thanks
@Adám Ah, and that's automatically turned on by ]box on, I assume? Which is why I never noticed it was necessary? Good idea re: disp. Thanks!
@Adám Wait, but it doesn't look like disp does trees...
 
6:17 PM
@AviF.S. No, it isn't. ]box on without -f=on only boxes output caused from inptu in the session (i.e. "final results") and not output as side effects of programs.
@AviF.S. No, then you need f dft 0 (with dft from dfns too).
 
@Adám Ah, thanks!
@Adám Even better, thanks!
@Adám Do you think that's cleaner than including _←⎕SE.UCMD']box -trains=tree -fns=on' at the top of a function, though?
@Adám It's not being done to aid calculation, it just provides a visual for the user. And it seems like ]boxing is the typical way to do that, which might cause less confusion than an extraneous dfn?
 
@AviF.S. Absolutely, but if nothing else, then it doesn't affect other code, and is much faster.
 
@Adám Ah, these are good points. To be honest, my real apprehension is that it's for the competition and while it's not cheating to use dfns, it feels more 'mine'/less bad if it looks built-in. Is that reasonable or silly?
 
6:37 PM
@AviF.S. Silly, since the judges know full well that ]box is running the those same dfns under the covers.
 
@Adám Alright, fair enough! Thanks :)
 

« first day (1223 days earlier)      last day (1414 days later) »