« first day (1232 days earlier)      last day (1437 days later) » 
00:00 - 15:0015:00 - 00:00

3:00 PM
@AviF.S. Actually, +⍀-⌿'()'∘.=x to be literal, but I wanted to show /´
 
You don't have to, but at this point I decided to separate the open and closed parens into two variables o←'('=x⋄c←')'=x.
 
@Adám I think I'll stick with alpha & omega :)
 
The nesting levels are +`o-c.
And we'll also want the indices of opening and closing parentheses b←/o and e←/c.
/ is in Dyalog APL.
 
@Marshall but is it "/" in BQN?
 
Or {⍵/⍳⍴⍵} elsewhere, at least in the vector case.
 
3:03 PM
oh wait nvm i typed wrong
 
@Adám Good point! But I couldn't find ⍀ and both worked in the example because the first=last axis at that point
 
Let's set d←+`o-c.
 
@Marshall May we have Dyalog translations for everything at the beginning, please?
 
@AviF.S. APL+Period
 
@Adám Thanks!
 
3:05 PM
@AviF.S. Beginning of what?
 
@Marshall This learning BQN.
 
@Marshall What @Adám said! Not piece-by-piece. Just every line of BQN cf. a line of Dyalog
 
I think what we've got so far is
x←'((-3)+√(3×3)-4×2×1)÷2×2'
o←'('=x⋄c←')'=x⋄d←+⍀o-c⋄b←⍸o⋄e←⍸c
 
RGS
(can someone tell me what we are aiming for, here?)
 
We are going to figure out which closed parentheses correspond to which open ones.
This lets you figure out the opening parenthesis each character "belongs" to, eventually.
 
3:12 PM
@AviF.S. shorturl.at/vPU17
 
RGS
that is in the really short term; I mean "how does this equate to writing an APL or your BQN compiler or ...?"
I'm not saying this exercise isn't needed but my lack of global scope prevents me from understanding its usefulness
 
@RGS I think we're looking at a simple parsing problem
@RGS So one of the steps towards writing an interpreter/compiler?
 
@Wezl You can post long urls by adding a newline (shift+enter) after the url (but don't use markdown then).
 
@RGS The thing my compiler does with it now is to move each function next to its enclosing parenthesis.
Which transforms APL notation to reverse polish (RPN).
 
@Adám I thought i remembered that, but I used [ctrl-enter]
 
3:14 PM
That is the format WebAssembly uses, so with that you already have a very simple compiler.
 
so right now are we trying to correctly pair numbers from (/o)‿(/c)?
(⍸o)(⍸c)
 
@Wezl Thanks! I was moments away from sharing: shorturl.at/nsIWY
 
Yes, that's right. Or b‿e as I've defined it.
 
RGS
@Marshall ah ok; I'll bear with you then
 
@Marshall end result should be ⟨⟨0,18⟩,⟨1,4⟩,⟨7,11⟩⟩?
 
3:16 PM
@RichardPark Yes.
As I said, at a particular depth the parentheses all go open, corresponding closed, open, corresponding closed, etc.
 
@Adám Ah thanks!
@Adám Although, then if people forget to click Read more, they figure you simply sent them the wrong link
 
RGS
@Marshall that does make a lot of sense
 
@AviF.S. i think i'll add an error message about cut links at some point :)
 
Based on the way we computed the nesting depth, our opening parens are one higher than the closing ones. We could adjust it, but it turns out not to matter.
 
@dzaima That'd be neat! Or clicking Save could instead be Copy which would copy to clipboard an already shorturl-ified link!
 
3:20 PM
If you look at the depth-2 opening parens (2=b⊏d)/b you get [ 1 7 ], and for the depth-1 closing parens (1=e⊏d)/e you have [ 4 11 ]. They match up.
 
@AviF.S. That'd require a server state.
 
@AviF.S. it already copies the link (there's also a shortcut - alt+s for the button, alt+e returning to the editor, among other things. i should add tooltips)
 
(2=d[b])/d and the same for e in APL.
 
@Adám Ah, I don't know much about these things! Just an idea, but I of course leave it to the implementor to decide what's easiest, or otherwise preferable
 
@Marshall when did d/e get defined?
 
3:21 PM
@AviF.S. ah, my intention with it is to definitely not shorturlify, so that even if the internet died, chat logs are enough to get all the contents
 
@ab5tract e←/c ⋄ b←/o
 
@ab5tract d is the depth here.
 
ahhh
 
@dzaima Very good point! Plus, always gotta be prepared for the post-apocalyptic world :)
 
@Marshall (If you enter just a message url, it'll get quoted nicely inline)
 
3:23 PM
Since in a valid parenthesized statement there are the same number of each type (open or closed) at every depth, we can pair all parentheses at once by sorting by their depth.
If we have multiple kinds of brackets, we could then confirm that the [{]} think Adam mentioned doesn't happen by comparing the types of corresponding parens.
 
Oh, and you have to mask away strings first too.
 
@Adám Like this? :54620619 How?
 
I can sort both sets of parens at once using {(⍋𝕩⊏d)⊏𝕩}¨b‿e.
 
@AviF.S. No, a full url, not an id, and no other content in the message.
 
@Adám Yes, unless you're doing a tiny little subset.
 
3:26 PM
@Adám Understood, thanks!
 
BQN has pretty nice facilities for working with cells, so we could also compute the correspondence with flat arrays using {(⍋𝕩⊏d)⊏𝕩}˘b≍e.
 
@Marshall now in APL I feel like ↓⍉↑ would do the job?
 
Where is Laminate and ˘ is Rank -1 ("cells").
 
@Marshall ooooh
 
@RichardPark That would get the format you showed ⟨⟨0,18⟩,⟨1,4⟩,⟨7,11⟩⟩. But that format doesn't actually fit with the array compiler style, so I wouldn't use it.
Right now, my compiler uses the permutation that transforms open paren locations to match closed paren locations.
 
3:30 PM
@Marshall I see, to be fair although the parens matching for parsing in this context I get, I am generally lost on the details since I'm not an implementer
 
You can get those pairs in BQN with >∾¨¨´{(⍋𝕩⊏d)⊏𝕩}¨b‿e. The two Eaches are ugly which comes down to the issues with Reduce we were discussing.
 
im a little confused (and still unfamiliar with BQN).
what format are we attempting to convert `b` and `e` into?
 
@Marshall yeah my eyes bugged out a bit at the double eaches in earlier examples
 
@Marshall OK, this one need an APL translation.
 
@RichardPark I do hope to show in this series that one way to "be an implementer" is just to know the right APL programming techniques. We have to start somewhere so not all the details will be clear, but we'll get to them.
@Adám That was translated to BQN from Richard's ↓⍉↑.
 
3:35 PM
@Marshall Mine will be A Schmogramming Schmanguage and all names are to begin with Schm (pronounced "schmuh")
 
So ↓⍉↑{⍵[d[⍋⍵]]}¨b e I think.
 
@RichardPark is that intentionally used to get ASS as an acronym? :)
 
@Marshall Yeah one thing I need to understand is BQN's array model, since I'm so used to fiddling with APL's nest-vs-rank mix-and-take stuff
@ab5tract I didn't think of that but it's an added bonus!
@Marshall But similarly I'm much happier with b≍e rather than ↑b e
 
Time's up so I'll stop now, but a good exercise is to do the validation I talked about (say, with APL's ()[]{}). You need to check that the total number of open/closed brackets match, that each open bracket corresponds to a closed one of the same type, and that open brackets come before the corresponding closed ones.
 
RGS
@Marshall what does it mean to write a language's compiler in the language itself?
 
3:39 PM
@RichardPark ,[0.5]
 
RGS
@Marshall thank you for your time :)
 
Self-hosting is the use of a computer program as part of the toolchain or operating system that produces new versions of that same program—for example, a compiler that can compile its own source code. Self-hosting software is commonplace on personal computers and larger systems. Other programs that are typically self-hosting include kernels, assemblers, command-line interpreters and revision control software. If a system is so new that no software has been written for it, then software is developed on another self-hosting system, often using a cross compiler, and placed on a storage device that...
 
@Marshall Thank you, Marshall!
 
Indeed, thanks for the session.
 
@RGS He said he wasn't sure. Someone else asked him whether he'd do it!
 
3:39 PM
See you all in 2 weeks?
 
sorry, quick wrap up questions:
1↓⍉↑{⍵[d[⍋⍵]]}¨b e
2 12
2 12
 
/me intends to be here. More or less. :(
 
with ⎕IO ← 1
 
@RGS Well, a compiler transforms source code written in some language (right now, a subset of BQN) to code in another language (WebAssembly). This is purely manipulation of data, so you can do it in any language.
 
doesnt seem correct
 
3:40 PM
@cannadayr Seems to have a leading 1?
 
@Adám Isn't Cultivation next week?
 
@Adám also ugly, and I thought we weren't that into []?
 
@Wezl Yes!
 
@Marshall ah thx i was translating between dyalog and gnu apl
 
@Wezl APL Cultivation is, but next APL Seeds is in 2 week.
 
RGS
3:41 PM
@Marshall ok... but this feels like a chicken and egg problem; if you are writing a compiler for BQN in BQN, how will you run that compiler for the first time to compile itself..?
I know you have been using BQN2NGN but how does that piece fit into this puzzle?
 
@RGS The first iteration is written in another language, say JavaScript.
 
@Marshall so we're looking for
┌───┬────┬────┐
│1 5│2 12│2 12│
└───┴────┴────┘
 
@RGS Not with your own compiler, of course. This is called "bootstrapping": you need some other implementation of the language to start with. Which I happen to have.
 
RGS
@Marshall it being bqn2ngn?
 
3:42 PM
@cannadayr Remember that Dyalog's monadic is in GNU.
 
In computer science, bootstrapping is the technique for producing a self-compiling compiler — that is, compiler (or assembler) written in the source programming language that it intends to compile. An initial core version of the compiler (the bootstrap compiler) is generated in a different language (which could be assembly language); successive expanded versions of the compiler are developed using this minimal subset of the language. The problem of compiling a self-compiling compiler has been called the chicken-or-egg problem in compiler design, and bootstrapping is a solution to this problem.Many...
 
@RGS Yes.
 
@RGS - Like @Adám said, your first, minimalist version is written in another language -- or in a subset of your language that happens to have the same meaning in another language.
 
@Adám doing this on tryapl first and ill translate to gnu apl after
 
RGS
ok, I think I understand know. thanks Wezl, Adam and Marshall.
 
3:44 PM
@cannadayr Why TryApl/GNU APL? Were you unable to download Dyalog?
 
@RichardPark lol!
 
because gnu apl is what im most comfortable with - but lots more personal historical reasons
oh i can dl it i just am not a huge fan of the cli interface, not rly important rn
 
@all was the meet recorded yesterday?
 
@Wezl Yes.
 
hmm still seems wrong
 
3:48 PM
@cannadayr Fair enough!
 
@Adám Where can I find it?
 
im still not clear on going from...
 
@Wezl It is currently only in my DropBox. I need to find a way to deliver it.
 
b ← 1 2 8
e ← 5 12 19
d ←1 2 2 2 1 1 1 2 2 2 2 1 1 1 1 1 1 1 0 0 0 0 0


(1,19),(2,5),(8,12) ⍝ (i think)
 
@RichardPark The actual origin is from Yiddish.
 
3:51 PM
@Adám Yiddish gives us a lot of great words! I'm trying to learn it as a hobby.
@wezl Like words with schm and Γ in bagel
 
@Adám Of course it is, and of course there's a wiki page for that
 
@Wezl I'll be happy to assist over here. (We only speak Yiddish at home.)
 
@Adám Thanks! I've been using Mango Languages
 
does any1 have an apl solution of going from b & e to parens pairs?
↓⍉↑{⍵[d[⍋⍵]]}¨b e doesnt seem to work
 
@cannadayr 1 sec
 
4:01 PM
(sry doing 3 things at once and dont want to go too long or itll take 10x as long hah)
 
@cannadayr Because you get (1 5) (2 12) (2 12)?
 
correct
 
@cannadayr BQN was mistranslated
@cannadayr should be ↓⍉↑{⍵[⍋d[⍵]]}¨b e
@cannadayr just a grade in the wrong place
 
Ah yes, that fixes it.
 
@RichardPark that seems to do it thx
 
4:04 PM
Now what do we do about bookmarking this APL Seeds session? Just let it mix with the APL Cultivation sessions? It'd need a way to be distinct. Maybe alphabetical numbering?
 
@Adám Yeah now SE chat bookmarks need "playlists" (books?)
 
RGS
@Adám alphabetical numbering sounds good
another possibility would be to simply link the starting message in an appropriate page, like an APL Wiki page, but that isn't very elegant
 
BQN keyboard, read from bqn2ngn:
https://dzaima.github.io/paste/#03ZXNTsJAEMfvPEVj1IOP4MWYeDDGi/HmwSfxwFewlBYVSjCgoigqSmKEJggqJnjk4Dvskwhl5k/pdkUTMcGmYX6Z7scw899ZYZvCDo@/tX/qqQs7on6zIWFHtW5N07QBiMI@UzrJZJWI5skukN0lu0h2iWeUbkFVJr1AtOfamMZPn90geic0oMuze8c8OfLCZGKUw65wmV0P2OwMhFD0G6L3JrsS1cBYylKamu7voyetjpTuWfS03f/VUIjjPjTKzYC2KG8rUAYyaRyBMviaAsGn32GcTfQRZtd1DBQfK8ywLN5QhPnqD0Y3sPQB6BClRoCJLCiHcZegMr6O5mYCorlUJO15XCfDtNdm39OXSjaoGm5iVilV22TXfMVhu052A8e5Q7RJdpnsHFnNm/qAnYWFPmXqIEOxvzCeIBc0lzx0WuLmIlJxaPdUHYlKA/0D1ZL6sjNrnjr3PZ@8JzeKHSntCRAuGCsNwjlM4vQlr0AV0HlQKdQ9omJIcURB6DUG1jdGe15AJh34LFw4bxP
3
 
@dzaima I suppose X isn't actually ?
 
nice, thx yall. will have to spend some time later and clean this up and I can add to github
 
4:11 PM
@Adám indeed. damn UTF16 :|
 
@Adám - Seeds as S1...Sn?
 
@dzaima Wow!! That's seriously commendable work!
 
@AviF.S. it's also broken in multiple ways. i'm also concerned if xkb can even allow typing characters past U+FFFF
(well, whatever i do with xkb, it wont be readable by my pretty-keyboard-generator, might as well just manually edit it)
 
@dzaima Huh! I'd never heard of xkb, just looked it up!
How difficult would it be for someone like you who knows it to add all the accents/variants that you get when you hold down a letter to the Dyalog APL layout?
Eg. e→èéêëēėę & n→ñń
 
@AviF.S. i have no idea what you mean by "hold down a letter" in regards to linux input methods
somewhat fixed layout, updating font soon:
https://dzaima.github.io/paste/#03VVdTsJAEH7nFI1RHzyCZ/AMnsQH/oKltKiwpAZEFERFSYzQBEHFBB958A57Ao4glJ1vW7arkogJNhvmy9fdzjDz7QxnNmfx8Gr/U6bDWUK/ijHOksaobRjGDPDyIaF8lpBTE2hT2C1h94XdFnaHTtRugVqEzLJAB75NGfRMsR/E@ExsGNHp8SkdTrwQsrHLIypeJ@oBzs6BEIp5I9B7j6hMKzKWupKmnv/7GEirp6R7HZmB/7@6GnHcx2RuCM3yNqmW8hAHkmmdABXwNgcEzrzDPibQR5yo6xRQOlSbeWWC0XD7VcYjq2zh60dAxyg4YswUgUrY1wCq4608W4gIqKFJ3XNYLfPkt9efmQqmGFWQkD4W7aTKZKnYULOL2/RmT9hdYTdCO1Na/9xBz7JNIEuqxJUQrcV6gnTAuZBtjdoNz6Uh5ao@Hp0eplesr3Rqb92YDnXCBakv1TrktcwAYeo4srHgWmZxGbNXQE2gi6hq6LtGM6AHDCcrCYQGZMGFJd1eQixDc
 
4:20 PM
@dzaima I don't either, tbh. I don't even know if other Unix allows it. But on Mac, you can do that...
I know that key-press-down and key-press-up (aka when you push and let go) are recorded as separate events by the OS, though
And that, for instance, that's how the shift & command/ctrl/alt/fn keys works
 
@AviF.S. if there is a way, i don't know it. If i had to, i'd just use Xcompose (<right-win> <i> <`> → ì etc)
 
By making sure the others down-up combos are in between shift-down & shift-up.
 
@AviF.S. i don't think that's passed to xkb though. Its certainly doable in other ways though
(xcompose it also how i type ¯\_(ツ)_/¯ and ಠ_ಠ and whatever else doesn't fit on separate keyboard keys)
 
@dzaima Ah, well I wonder what part of the keyboard layout takes care of it then. It's just annoying because Dyalog (Alt US) is my default keyboard. But every time I want to use a different latin-alphabet-language or otherwise use a letter variation/accent/anything else for a name like Adám, I have to switch keyboard layouts. And the other ones let you do it...
 
@AviF.S. to write Adám i just do "@Ad<tab><shift-left><backspace><end>" :p
 
4:27 PM
@dzaima Haha, that's great! Definitely going to steal it; thanks!
 
@Adám right, completely forgot about the font, here are the double-struck parens/brackets. ⦅⦆ still unreadable on small sizes
 
@dzaima Ah, Macs don't have a native compose key!
@dzaima How did you put an img?
@dzaima Looks really great!
 
@AviF.S. upload button besides send besides the message box, and quickly edit the message in afterwards
 
Oh my goodness... Thanks
 
@dzaima y'know, i should've tried the obvious thing (U1D568) before opening my mouth.. :p
 
4:36 PM
@dzaima Ugh! I feel like such a dud in these chatrooms! How in heaven's name did you reply to yourself? ⍥
Been trying to do that for ages...
 
@AviF.S. copy message permalink (shortcut - middle-click the left arrow), copy message number from link, manually write :that. This one's a bit less obvious of a "feature".. You'll also ping yourself :p
 
@Wezl Use the permalink?
 
@AviF.S. Blah blah blah
@dzaima Boy oh boy! The things to learn... Thanks :)
 
@dzaima and now i can type 𝕨𝕎𝕩𝕏𝕗𝔽𝕘𝔾 \o/
 
We should have a "Tips" page on the Wiki for how to operate within the APL Orchard, haha! Even the markup is different...
@dzaima ⍤⍥⍤
 
4:39 PM
@AviF.S. like this?

Sandbox

Where you can play with chat features (except flagging) and ch...
 
Can you share it with us?
 
At this point the chatroom switches from several people talking to each other to several people talking to themselves...
 
@Marshall Haha!
@Wezl Super useful! Thanks!
 
@AviF.S. would indeed fill up the page quite a bit...
 
@dzaima Is it worth doing?
 
4:42 PM
@AviF.S. better than having to re-explain everything to every new member
 
You could put it in an out-of-the-way corner of the wiki, but it might be better to have an independently published page about how to get started in this APL community.
Where "this" community is very loosely defined by using the APL Orchard and APL Wiki and maybe things like Dyalog webinars.
 
font updated, keyboard now pretty (boxing chars are a bit weird though, hmm)
https://github.com/dzaima/paste/blob/master/BQN386.ttf
https://dzaima.github.io/paste/#03VVdTsJAEH7vKRqjPngEz@AZTLyHD/xZy9KiQgkGrFUQECUxQhMEFRN85ME77Ak4gqXsftvSrkoiJrjZMF@@3e0OM9/OUMugViI8O/@U6VIrKZ9FhVopddxRVXUGaOWYo3yWI9NhaJPZLWb3md1mdoefcG6B2hzpFYYOfZtW@fCw78Tkgm0Y89OTc344@cKRgV0upxI1Tj3gsksguKK3GHrvc0prx/pSi4Sp7/8@BsLqRsK9jszQ/189iTjuFREbjmZxm9qlPMSBYJIzoAJWc0Dg9Dvssxj6SHCqmQbKhHIzz0zQG2q8Cn9Elgm@fgJ0ioTDR60IVMK@OlANq@JsIcahuiR0z2G1zIPfWX/GE0wxLiEhfSzaqW2JVFkjyS5q8JU9ZneZ3QjtTEvvpyZqlqEDEaGSsoAoLeQJ0gFXhmwdXm5o
 
i was thinking 'strand' could be 3rd (2nd) level of space key
 
@cannadayr That's a neat idea.
 
@Marshall i also had thought about that for what its worth
 
4:52 PM
also, i wonder if it would be better to keep the keyboard as close to apl's as much as reasonable
i feel like "notation as a tool of thought" means that a lot of the importance is in programmers heads
 
(current) linux layout; i don't know how to "properly" use it, but placing in /usr/share/X11/xkb/symbols/bqn works for me, and its activatable with something like setxkbmap -layout au,bqn -variant '' (assuming the switching is already set up from the apl layouts, which this will reuse and you will need to switch between them; "au" obviously being whatever primary layout is wanted)
https://dzaima.github.io/paste/#03ZZtbxRVFMdfs5/ipkFNCNCZe2d2ZqyYAC2IgDyJqE3V2Ye@QUAlJhAk6QOp2@2Wp25TA9ZqERVtYmyb8KBigi954XfYT8BHcLh37v@c3dlpIIGQ0k56T87@9t4z5/zPue3tFa1mo9UcaX@WXlLPcqs5mv/MFHofp2NMPFgSQhuta19b6@Kk
my heads getting dizzy from all the multitasking, i'll take a break now for a bit :P
 
@cannadayr I don't see an obvious problem with providing both an APL-like and a redesigned keyboard.
My keyboard is yet another thing that I just threw together to have something working, and I would be interested to see how other people might redesign it.
 
@dzaima seems i missed the whole \ key ಠ______ಠ
 
@dzaima / as well? But this isn't a US layout so I'm not sure I know all the positions.
And in case people missed it I'll say again that \ and not ` is the right escape character for a "backtick" keyboard.
 
5:08 PM
layout should be fixed:
https://dzaima.github.io/paste/#03ZZbb1VFFMefOZ9i0nhJSLWzZ/bVignQggjexVtTdZ9LXxBQiQkESXoh9fT0FJWepgas1SIq2sTYNuGiYoKPPPgdzifgI7jZM7PW/7C7G0gkprY7nZV1fmdm7fVfa00HBkS30@52xnuf1f@pZ63bmSh/5isDd9MxKW6tCpEb3QufOuvcjLPmlq31iF0ftes7dn3MrjvdN5Z/JOuKs5oXrPVJvk4J95PZLo7bX1nmltvg9pfu@xO/O6tN1IZzja841y903tdkUTTNH6z111Xnmr5SFs5KIV9X87@/Qn43Cnnfjp4b@Xutl1TJzyYdU5wfu06KO0sL56hKKKWtL8g6T5/OkkW@5k/Edaz197hzfT9F1tkehUgfDKjb/oNDYrlbdMBnZH1OylOY0/NkLRB3iawV@pS/e37zmC6V5PC33rIxKqxuf09WOfMlsvQUyr3rnaUOC9a5WUJ12@6TQ3Z9yq59PeTUViF052iQtZtktbhcFtmkYdO6RjVEvkUq4WU3gLqzZ6msl7YMqawwsqa7XhjiG9vN
didn't add the chars in the unicode-art, but ¯\_(ツ)_/¯
next up, besides whatever's in my todo list, make a bqn interpreter because why not
 
5:33 PM
@dzaima i think i'll just work off of dzaima/APL, can't be bothered to recreate the whole model and i think it's already reasonable
 
anybody heard of this?
 
yep kyte is pretty active around here
i think he does a lotve K too
(or she)
(i dont know)
 
I was pretty impressed it had the full indexed/selective/modified assignment suite.
 
@dzaima The font doesn't have thick box drawing chars.
 
5:55 PM
@dzaima AE00TLDE; changed that for unicode-art generation, didn't change back
 
6:27 PM
@Marshall And then it dies . . .
 
@AviF.S. I think it is a fine idea.
 
ngn
7:10 PM
@Adám wiki/ngn/k - it's k6, not 7
@Marshall ^
 
@ngn Fixed. Thanks!
 
8:02 PM
@all is there a way to have a draft page that's not published that we can work on for the tips page? Or should I host it on Github?
 
@AviF.S. Wikipedia has drafts. I don't know how well-supported this is on the APL Wiki, but I think you could probably create one.
 
@Marshall Ah, thanks!
 
8:30 PM
@Marshall how does 𝕨 work when not supplied? The {𝕩𝔽𝕨⊣𝕩} impl of ˜ in the README seems to rely on it being dynamically parsed
 
@all Alright, I have a prototype, at least! What shall I call the page?
OrchardPicking/ChatTips/IDK?
@Adám Any good puns here?
I'm thinking I'll just call it Draft:ChatTips and we can worry about deleting/recreating with better name later
 
@dzaima The theory behind those definitions is that 𝕨 gets a special "non-existent" value. If that value is used as a left argument to a function, then the function is instead called monadically on its right argument; if it's used as a right argument, then the function isn't called and its return value is also non-existent. So the non-existent value can't be used in any way, in particular, it can't be assigned.
In some sense it makes the valence dynamic, but since only 𝕨 can have this value you can also statically parse the monadic and dyadic cases separately.
But NGN2BQN doesn't use this system and I haven't really committed to it.
 
9:01 PM
I sort of gave up on using the Wiki for a first draft, since it's markup is unfamiliar and often more verbose, it doesn't seem handy for the beginning when we're still messing around a lot! Couldn't think of anything better for MD editing than Github so here's what I have:
 
9:11 PM
@AviF.S. Anyone have any better ideas for how/where to do it?
 
@AviF.S. Paste it in aplwiki.com/wiki/Talk:APL_Orchard until someone approves it? Use a markdown pastebin ? (But github is probably best and others can contribute)
 
@Wezl Haha, I was looking for MD pastebins! Don't know how I didn't find it :)
 
@AviF.S. also github gists
 
I found this tool to convert from MD to Wiki syntax!
So, I'm making a draft on the wiki too, if anyone prefers...
@dzaima That's really nice! No way to update though, right? Just change and send again...
 
@AviF.S. you can update, it's pretty much a mini git repo
 
9:19 PM
@dzaima Really? And others can change it too?
 
@AviF.S. others - no afaik
 
That's so weird...
 
9:32 PM
@all Sorry about that... It took me 10 minutes to write it up and 45 to figure out what the heck to do with it! Here it is on the wiki in the Draft: namespace. IDK if that's even a thing on other MediaWikis, but it's how you do it for Wikipedia... evidently
As long as no one links to it elsewhere on the site, all should be well. There's just a 1/300 chance someone will get there by accident when they hit Random Page ;)
 
@AviF.S. add starring, how to do images, possibly how to use a language bar?
 
Images are there! Starring will add! Re: language bar, you're right that I suppose it can apply here as well. But I'd think that should be covered in a more general tips section!
 
@Wezl (just realized that ~90% of my chat messages are questions and me doubting myself, with a lot of parentheses)
 
RGS
@Adám how does one submit bugs with Dyalog APL 18.0? the way you explained yesterday applies the same? e-mail to support@?
 
9:50 PM
@RGS shouldn't be any different
 
@Wezl Thanks! Super helpful!
 
RGS
@dzaima I'm just asking because 18.0 was just released; there might be a different process in the beginning
 
Added language bar under Add Ons, for now! If you or anyone else wants to add more in there! And in starring I put a note that it replaces others so to use it judiciously... AKA, that it's just as much about saving as indicating liking/agreeing.
Which reminded me to put 'for liking/agreeing see +←1,' which prompted me to add another category for 'Conventions'! Including the likes of TMN → Traditional Mathematical Notation!
It might be a little too much, but always easier to trim than to add!
I still think we really need a tips page for RIDE, I thing Adám's io page could be a whole wiki page given all the things we constantly find out/need to know. If anyone's up for starting that anytime :)
Would be amusing, but not reasonable to include an 'Insider Knowledge' section! Stuff you have to have hung around a while to know. You know, serious wisdom like:
- Adám is an Orthodox Jew, he'll be here every single day except Saturdays (Sabbath), and other Jewish holidays
- If you want Roger Hui to like you, do ⎕IO←0 ⍝ Latin for Delete Me, or something
 
RGS
10:09 PM
@AviF.S. ⍝ ⎕IO delenda est
 
10:24 PM
@Marshall is this intentional behavior?
 
@RGS - ⎕IO is very useful, IMO; there are times when you want your indexing to be natural numbers, not C-style-pointer-arithmetic-compatible numbers. And there are other times when you may not want natural numbers...
 
@RGS Yes? In case the display is throwing you, the output is just a 4-character string, or vector of 4 characters.
 
@Marshall (wrong reply message) then is (1‿2)‿(2‿1‿0)⊏3‿3⥊"abcdefghi" wrong? Cause the 2 seem to be different things
 
@dzaima It chooses simple selection or Squad-style selection based on the depth of the left argument. I might change it but it is intentional.
Basically the left argument is converted to a vector of arrays, but if it is numeric it is only used as the first element.
 
10:41 PM
@Marshall unless i'm missing something, i think it'd be much better to allow 1‿2‿0‿4⊑"abcdef" and leave as just squad indexing
ah it seems i am missing something
 
@dzaima assumes vector indices, because in general a vector is required to select an element of an array. It maps over the left argument to get down to depth 1.
 
@Marshall ah, so it's equal to ⊑⚇1 0
 
The thing is part of a general pattern where a vector with a specific depth is expected and an argument with depth one less is used as a first element. ⌽⍉↑↓↕ do it with depth 1 and ⊏/ do it with depth 2 (but / is not implemented in BQN2NGN).
@dzaima ⊑⚇1 ∞.
Or ¯0 I guess.
 
@Marshall :D
 
calls.disroot.org is a jitsi meet instance that includes password support and recording (and isn't arbitrarily blocked)
 
RGS
10:52 PM
@JeffZeitlin I like flexibility as well :) I was just replying to Avi's remark about IO and Roger Hui
 
Oh, the vector-of-array case for ⊏/ does have a problem that the vector-of-number case doesn't, which is that for an empty left argument figuring out its depth is unreliable. For / both cases are either a no-op or a length error, but for one is a no-op and one has an empty result.
 
11:24 PM
@Adám I'm waiting for your solution to the rainbow :)
 
@Marshall ⊔ doc: ≠↕𝕩↕≠𝕩
 
@dzaima Got it. Thanks!
 
11:42 PM
(as with APLs , i can't help but think that s args be swapped, such that 𝕩 is always the "grouper", allowing for defining both with a 𝕨←↕≠𝕩)
 
@Bubbler Super neat challenge! What are the requirements for the empty program to count, though?
I'd think it would in most languages, eg:
Haskell: [nothing] arg → arg
Python: [nothing](arg) → arg
 
@AviF.S. it's neither a function nor full program in either though
 
Aka, if you apply the empty program, [nothing], as though it were any other function that you allowed, like lambda n:n & str, (with parens or a space in Py/Hask) then it would yield the same thing back
@dzaima But it's a valid program, and when applied it works
 
@AviF.S. you can assign lamndas & built-ins to variables, but f = ; doesn't work (or at least i expect it not to)
 
Oh right! He defined function/full program! Let me check his definitions
 
11:52 PM
also "If an empty program satisfies the condition above, you can include it only once in your answer." from the challenge
 
No, he doesn't define it...
And it seems to me up to 'philosophical', never-ending, impossible-to-answer, debate whether nothing is a function/program. It's valid, and it can be applied to arguments, technically...
One say nothing/whitespace is the identity function... No?
 
@AviF.S. a function is generally accepted as a reusable thing, optionally with some I/O, i'll check the meta
 
@dzaima Ah, good idea!
 
top result is old, but still makes sense. In languages where "function" is well-defined there shouldn't be much of a question anyway
 
@dzaima Ah, you found the same!
 
00:00 - 15:0015:00 - 00:00

« first day (1232 days earlier)      last day (1437 days later) »