« first day (2639 days earlier)      last day (36 days later) » 

5:36 AM
hello guys, is apl begginers welcome?
2 hours later…
7:24 AM
@Marshall wow, is it that bad of an idea?
@Adám currently it's shown as [⟨[box ⟨1 ⋄ 1⟩] ⋄ [box ⟨1 ⋄ 2⟩] ⋄ [box ⟨1 ⋄ 3⟩]⟩ ⋄ ⟨[box ⟨2 ⋄ 1⟩] ⋄ [box ⟨2 ⋄ 2⟩] ⋄ [box ⟨2 ⋄ 3⟩]⟩]
i don't really like [box] for boxes, not sure what could work better
maybe just prefix?
@RubenVerg I thought the number represented badness, i.e. 10=most bad, 1=just a little bad. So Marshall is saying it is actually good (negative badness value).
@RubenVerg I don't understand what the [box]s are doing here.
@Adám if you mean that it should show up as array notation but multiline, i don't think it'd be too much hard (nor would it be the traditional way to show arrays) but i did some experiments and it looks like it's gonna be a lot of bad code which doesn't really fit in the concept for tinyapl
What does [⟨⟨1 ⋄ 1⟩ ⋄ ⟨1 ⋄ 2⟩ ⋄ ⟨1 ⋄ 3⟩⟩ ⋄ ⟨⟨2 ⋄ 1⟩ ⋄ ⟨2 ⋄ 2⟩ ⋄ ⟨2 ⋄ 3⟩⟩] give?
@Adám ah, i guess i wasn't clear with my question (:
@Adám the same result as ⍳⟨2⋄3⟩
@RubenVerg Formatting array output is notoriously tricky.
7:31 AM
but i think it'd be hard to figure out when boxes must be marked and when they're implicit
But surely, multi-boxing makes a difference, no?
i can't just not show box ever because ⟨1⟩ and ⊂⟨1⟩ would show up as equivalent
@Adám wdym?
Sure, but how would you write ⊂¨⍳2,3?
[⟨⊂⊂⟨1 ⋄ 1⟩ ⋄ ⊂⊂⟨1 ⋄ 2⟩ ⋄ ⊂⊂⟨1 ⋄ 3⟩⟩ ⋄ ... ]?
or whatever the syntax for boxing would turn out to be
This doesn't make sense to me. The ⟨ ⋄ ⟩ syntax implies elements are boxed.
7:38 AM
hm, so you would special-case vector notation to (somehow) ignore a layer of boxing?
Surely, it is unacceptable that ⟨'abc' ⋄ 'def'⟩ ≡ ⟨⊂'abc' ⋄ ⊂'def'⟩ and ⟨⊂'abc' ⋄ ⊂'def'⟩ ≡ ⟨⊂⊂'abc' ⋄ ⊂⊂'def'⟩ but ⟨'abc' ⋄ 'def'⟩ ≢ ⟨⊂⊂'abc' ⋄ ⊂⊂'def'⟩
how is ⟨⊂'abc' ⋄ ⊂'def'⟩ ≡ ⟨⊂⊂'abc' ⋄ ⊂⊂'def'⟩?
Given x←'abc' ⋄ y←'def' and ⟨'abc' ⋄ 'def'⟩ ≡ ⟨⊂'abc' ⋄ ⊂'def'⟩ then ⟨x ⋄ y⟩ ≡ ⟨⊂x ⋄ ⊂y⟩ which presumably should hold for all values x and y even if they are x←⊂'abc' ⋄ y←⊃'def'
The very definition of ⟨a ⋄ b ⋄ c ⋄ is (⊂a),(⊂b),(⊂c)
wait, vector notation boxes even things that are already boxed?
7:43 AM
i see. missed that from the description, will change it
You can try this in Dyalog: (⊂'abc')(⊂'def') ≡ (⊂⊂'abc'),(⊂⊂'def')
If you want a conditional enclose-if-simple, you use (but of course, that has no effect on simple scalars).
so i guess it now makes sense that the display of arrays in vector notation should drop a layer of boxing
@Haruki Hi there. Interested in APL?
> ⍳⟨2⋄3⟩
[⟨⟨1 ⋄ 1⟩ ⋄ ⟨1 ⋄ 2⟩ ⋄ ⟨1 ⋄ 3⟩⟩ ⋄ ⟨⟨2 ⋄ 1⟩ ⋄ ⟨2 ⋄ 2⟩ ⋄ ⟨2 ⋄ 3⟩⟩]
> ⊂¨⍳⟨2⋄3⟩
[⟨⟨1 ⋄ 1⟩ ⋄ ⟨1 ⋄ 2⟩ ⋄ ⟨1 ⋄ 3⟩⟩ ⋄ ⟨⟨2 ⋄ 1⟩ ⋄ ⟨2 ⋄ 2⟩ ⋄ ⟨2 ⋄ 3⟩⟩]
hmm, looks like i found a bug in Each
anyways, this is the new display for vectors, better?
Yes. Btw, what does [1 ⋄ 2] give?
8:00 AM
a vector, apparently
[] calls fromMajorCells which, for scalars, makes vectors
You don't have bracket indexing, right?
would've chosen a different character for [] if i did
Right right. In fact, as we are working on the implementation of APLAN, we're seriously considering switching to different characters instead of overloading []()
ah, interesting!
i'd be happy to change them if you come up with anything different
i like ⟨⟩ for vectors
what are your ideas?
Maybe ⟦⦅⦆⟧ or ⁅⟨⟩⁆
8:06 AM
somewhat related question, how many free spaces are available on a standard APL keyboard?
No more than 17.
ah. that's way less than the new things i added to tinyapl (:
guess i'll have to do three layers
@Adám hmm, these both look good
Another option might be ⌜◜◞⌟
what's the reason for not overloading ()/[]? are there places where they're ambiguous?
(and of course, pairs can be mixed and matched.
@RubenVerg No, not per spec, but that requires at least one /linebreak to disambiguate, so you cannot just write (1) for a vector.
8:10 AM
@Adám i think i like these less. best combo is ⟦⟨imo
I just find the double-struck ones not very APLy.
@Adám ah, right. is there an alternative for ⟨1⟩? maybe (1⋄)?
@Adám works too
@RubenVerg That's how you'd do it.
But then there's little benefit over (,1)
『 』 and 〖 〗
@Adám when you said "we were thinking of doing different glyphs" the first thing that came to mind were the double-struck brackents
what's not APL-y of them?
@RubenVerg might go better with or
8:13 AM
@Adám hm, the empty space looks weird
That's a font issue.
hm, how about for high-rank and for vectors? or are they too similar and therefore confusing?
@RubenVerg They are not composed of traditional base APL glyphs. So far, everything ever added to APL\360 has been overstrikes of its glyphs.
@Adám how'd they look with a correct font?
Up to the font designer :-) but probably much the same, just spaced better.
(Or did you mean an empty namespace?)
Potentially, namespaces could use a different symbol from vectors (and high-ranks). Could be plain parens too…
8:15 AM
i mean the holes in the glyphs look weird - weirder than in the double-struck ones
A: What options in Unicode are there for balanced pairs of brackets like `(){}[]<>`?

AdámXah Lee has a comprehensive list: Western quotation “ ” ‘ ’ ‹ › « » Low-9 quotation „ ‚ Full width brackets ( ) [ ] { } ⦅ ⦆ White variants ⦅ ⦆ 〚 〛 ⦃ ⦄ Asian 「 」 〈 〉 《 》 【 】 〔 〕 ⦗ ⦘ Asian white variant 『 』 〖 〗 〘 〙 Half width variant 「 」 Math ⟦ ⟧ ⟨ ⟩ ⟪ ⟫ ⟮ ⟯ ⟬ ⟭ ⌈ ⌉ ⌊ ⌋ ⦇ ⦈ ⦉ ⦊ Decorative ❛ ❜ ❝ ❞ ...

@Adám yeah I think namespaces having the same brackets is somewhat confusing
@Adám isn't = [ + |?
I guess that could be justified.
3 hours later…
10:56 AM
Q: Alexa Widget - test DataStore Update

BrtlbI am currently trying to develop an alexa widget for visual echo devices which is supposed to display data from a DataStore. I could bind the DataStore data to the widget i n the APL code and install it on my echo show. I can also send updated data using the "Update data store" button in the widg...

1 hour later…
11:56 AM
@Adám by the way, who's "we" in this sentence?
is there some sort of new apl features committee? or is it just the dyalog team?
@RubenVerg John Daintree (Chief Architect) and me (Head of Language Design).
@RubenVerg ✋.
hm. it might be interesting to have a representative of the APL community in this "committee". I guess it'd be quite hard to choose one though, and Dyalog has to do its decisions also based on business?
also not sure if "the APL community" is even a thing
We have some people that we discuss proposals with, and I present/discuss/ask for feedback at User Meetings and other forums well before implementation. We've been working on APLAN since 2015!
wow, that's a long time! wouldn't've guessed it's taking so long
you really do want to make it good, huh?
Core APL is forever. Better get it right. Sadly, some newer things were rushed. E.g. Key, At, and Stencil. They all have issues.
Old APL design also has issues, of course, but at least it isn't JS or PHP level bad.
12:07 PM
what would you say were some of the worst mistakes?
also I'm trying to fix the Each bug – is it correct to say that is applied to each result of the function application?
Kind of, is simply ⊂⍤F⍥⊃⍤0
great. thanks for making me spot a bug! I've been writing tests for the primitives (and found a few bugs) but I missed this one
is there some open source APL test suite I can adapt tests for tinyapl from?
@RubenVerg Hybrids; ⍳oneElementVec being ⊃¨⍳oneElementVec; being ∊∘, but see Prime for more.
yeah I remember we talked about Prime before
12:19 PM
thanks, this is really useful! I'll try adapting them to my test system
is iota-singleton-vector behavior like it is because shape of a vector is a singleton vector and not a scalar?
(from before Tally existed)
@Adám I remember you mentioning that At should've been structural Under (from which the normal At can be derived), but what's wrong with Key and Stencil?
@RubenVerg Yes.
@RubenVerg And Stencil is just too specific. No good way to control edges, can't handle small arguments.
hm, any suggestions for things to have when/if I add stencil to tinyapl?
@RubenVerg Add rows to the right operand specifying edge handling (extend replicate to be multi-axis and let Stencil use masks instead of counts, and/or extend take/drop to outfix/infix) and initial offset.
See suggested edge handling cases here
1:23 PM
@Adám what does "extend take/drop to outfix/infix" mean?
is it just me or are the dyalog forums not working?
can't find who we're meant to tag now that Adám is away
ah, it's pinned. @DyalogLimited i think the forums aren't working, "504 Gateway Time-out The server didn't respond in time."
1:49 PM
looks like it's now fixed. sorry for the ping!
2:01 PM
should the empty vector be displayed as ⟨⟩ or as an empty string? (currently i have no prototypes so can't distinguish between, say, and '')
Feel ⟨⟩ better
3 hours later…
5:27 PM
@Adám yea slowly trying to learn it
2 hours later…
7:03 PM
@Haruki I think a lot of people get scared of the "weird" symbols. But I think it is a lot more intuitive and allows the user to think more of what they want out of the program rather than how the program should behave, than many of the big languages being used today.
Btw no questions are too small to ask, if it is something that confuses you. The only thing being asked of new comers is that they try their best, and are willing to listen to the help being provided.
2 hours later…
8:58 PM
@RubenVerg when you are able to compute convolve fast
The {+/,A×⍵}⌺ special case, that's say.
9:39 PM
@RubenVerg Btw, there's a proposal to make stencil into a function which just returns the windows instead of applying a function to them.
@RubenVerg (⊂2 2)↑'abcdefgh' or (⊂2 ¯2)↑'abcdefgh' (I'm not sure which is better) gives 'abgh' and similarly for gives 'cdef'
@Haruki Let me know if I can be of any help. I can tutor directly, or refer to all sorts of materials (video, audio, interactive, text…)

« first day (2639 days earlier)      last day (36 days later) »