« first day (2136 days earlier)      last day (526 days later) » 

1:49 AM
Ready for AoC? (first problem release in 3 hours)
 
Might take a nap first lol
 
 
2 hours later…
3:40 AM
Back in Black, baby!
Moved house and lots of events transpired. Sadly, was unable to attend the Tokyo J/K/APL meet :(
Just learned that tradfns labels simply create line number integer tokens.
I have some tradfns with lines like ⍎'foo←123'/⍨0=⎕NC'foo' to initialize a non-existent variable.
When foo exists, then the line is essentially equivalent to ⍎'' which has no result, but when foo doesn't exist, then there is a shy result.
Naively trying to stuff the line in a dfns like _←⍎ ... doesn't work since there may or may not be a result to store.
Application state is stored in variables and initialized like that, but architecture questions aside, are there different idioms for initializing unset variables?
 
4:06 AM
@B.Wilson try ⊢foo←123?
I mean, something like ⍎'foo←123' '1'/⍨0 2=⎕NC'foo' so got something to eval
for tradfns idioms I think "APL ADVANCED TECHNIQUES AND UTILITIES" is helpful
and just avoid things like defvar in any non global context, for functional programming's sake
 
4:53 AM
@voidhawk I've added you to the list of people asking for it.
 
Long list?
 
No, 4 primary items and 3 secondary ones.
Primary: ⊃⍋/⊃⍒, pointer dragback (iirc: reuse existing data pocket by moving the pocket header), {(↓⍺)⍳↓⍵}, ∧.=
Secondary: (⍳100000)⍸17777, 1⊥, 2-⍨/
 
 
4 hours later…
 
2 hours later…
11:28 AM
Looking forward to getting schooled by Jay Foad again...
 
12:21 PM
@xpqz Can you send me a combined diff file for both changes?
 
 
1 hour later…
1:44 PM
Mine is use regexp replace to format the data file into JSON
 
2:19 PM
@Adám I am reasonably convinced that the first one is needed. I am not sure about the second; doing a few more experiments.
 
 
1 hour later…
3:43 PM
Announcement: BAA webinar (open session) in 15 minutes: Zoom 858 532 665, passcode: ⎕←×/1920 12 17
 
@Adám 391680
 
4:01 PM
⎕csv is ideal for today's, (×⊆⊢)∊⎕CSV'1.txt'⍬3 parses and splits on zeros
 
×⍛⊆
 
yeah
if only
 
20.0
 
4:58 PM
@palas Hi there. Interested in APL?
 
 
1 hour later…
6:13 PM
Whoa whoa hold up, "behind" isn't slated for 19.0?
Add me to the list (again)!
 
No, too much to do, and too little time.
Also, it seems we tend to add primitives to even .0 releases.
 
 
2 hours later…
8:51 PM
One quick question regarding the language itself. Can APL be considered homoiconic to some extent?
 
In computer programming, homoiconicity (from the Greek words homo- meaning "the same" and icon meaning "representation") is a property of some programming languages. A language is homoiconic if a program written in it can be manipulated as data using the language, and thus the program's internal representation can be inferred just by reading the program itself. This property is often summarized by saying that the language treats "code as data". In a homoiconic language, the primary representation of programs is also a data structure in a primitive type of the language itself. This makes me...
> Other languages which are considered to be homoiconic include:
∙ APL
 
Thank you, I wanted to make sure for a paper I am currently writing.
 
That said, it is awkward to manipulate code in APL, as you have to go via text representation.
 
That is what threw me off at first, but it is doable as far as I've seen
 
Sure, and in the old days, it was actually quite common to do so.
E.g. one would conditionally set the value of a variable with ⍎condition/'var←42'
And there's a Game of Life implementation floating around online which builds its expression up piece by piece too.
@SantiagoNuñez-Corrales Btw, if you want review and or feedback, I'll be happy to assist (if I know the language you're writing in).
 
9:00 PM
I would appreciate that. I hope to accompany that with code in gitHub as well
 
imo APL isn't homoiconic, if it is then basically every other language is, which makes the term essentially entirely meaningless
 
True:
> All Von Neumann architecture systems, which includes the vast majority of general purpose computers today, can implicitly be described as homoiconic
 
so it's worth limiting it to languages that allow manipulation in more ways than just processing the text of functions and stuff, which APL doesn't
 
But it sure is easier to dynamically manipulate and execute APL code under APL than it is for C under C.
 
yeah, but it's not easier than python
(it's actually harder than python because of the python ast module)
 
9:03 PM
Right, and definitely not as easy as Lisps.
 
all the other languages in that list are definitely more homoiconic than APL (by a long way), so imo it shouldn't be there
 
I never made a claim, only quoted WP which is the ultimate source of truth /s
 
I suppose early APL may have been written in a way more homoiconic-y way than the average piece of code in modern languages, but I'd definitely say that APL isn't inherently more homoiconic than JS or Python
 
10:01 PM
Another, more practical question. I have a namespace A, that contains another namespace B, with objects X, Y, Z. How can I use X, Y, Z directly without having to resort to the dot notation?
The code is stored in a .aplf file that I load into the interpreter
 
10:27 PM
@SantiagoNuñez-Corrales You can copy them into the current namespace.
 
10:45 PM
DyalogAPL, linux terminal interface: is there some better way to re-edit the previous input line, quicker than CURSOR-UPing to it line by line?
 
@rak1507 I spend almost all the time parsing the input. Processing it to the solution is no work at all.
 
(line-by-line across the last result, that is.)
 
@MartinNeitzel Ctrl+x,b should do the trick.
 
@MartinNeitzel if the APL keyboard layout is active, (apl input modifier)+upArrow does it
 
Splendid, thanks!
And it get's me even older input lines, too. I'm a happy camper!
 
10:51 PM
@MartinNeitzel This and that may help.
 
11:09 PM
That completely eluded me on my quick first reading (3+ months ago) -- time to take a real close look.
 
@MartinNeitzel Is there a reason you don't use RIDE?
 
I have consoles everywhere in my flat and can easily pull sessions around terminals using screen(1). I have only one desktop system with a modern browser. (I wouldn't expect RIDE to run on lowly browsers such as dillo(1) without any java/javascript at all.)
 

« first day (2136 days earlier)      last day (526 days later) »