« first day (482 days earlier)      last day (2162 days later) » 

4:34 AM
@ngn What happens if you reverse the order, i.e. copy in c.neural first, and then c.crypto?
@Zacharý check that the angle brackets are properly balanced
 
Okay, so <<>> would return 1?
 
@Zacharý No, the precise definition is given right after: all left angle brackets '<' must be "closed" with right angle brackets '>' before another occurrence of a left angle bracket
 
Ah, didn't see the "before another occurrence of an angle bracket", must just be tired.
 
 
8 hours later…
12:46 PM
@Adám glad to know my code's returning that correctly then :D
 
ngn
1:14 PM
@Adám same thing - the second call to ⎕ns fails
I'll try to get a smaller repro
@Adám it seems to be a problem with ⎕fix
if I create the namespaces manually, it behaves well
 
@ngn Oh. Yes, if you can cut it down, let me know.
 
ngn
1:36 PM
@Adám this is so mysterious
with 2 nested namespaces it works, with 3 - it fails
simple repro - create a file a.dyalog with the following content:
:namespace a
  :namespace b
    f←{}
  :endnamespace
  :namespace c
    g←{}
  :endnamespace
  :namespace d
    h←{}
  :endnamespace
:endnamespace
then, from a script or from the session do:
a←⎕fix'file://a.dyalog'
'#'⎕ns a.b
'#'⎕ns a.c ⍝ DOMAIN ERROR
 
2:28 PM
@EriktheOutgolfer I tried to make a train out of this
it doesn’t work
⊃∘(⊢⍪∘(∊⊖¨)⊢⌿⍨1<≢¨)
I’m probably missing one thing or more
 
2:42 PM
@FrownyFrog is anomalous for historic reasons, so while you're trying to use it as a function (replicate) it is in your train acting as an operator (reduce). You can force to behave as a function by forcing it to be an operand of : ⊃∘(⊢⍪∘(∊⊖¨)⊢(⌿⍨)1<≢¨)
 
oh, just that
thank you
 
@FrownyFrog No problem. It is one of the few major irritants in Dyalog APL, which isn't so bad for a half-century old language. Compare to various wats of other languages. Hopefully, in 18.0 we'll get the atop operator which makes it easier to force et al. into submission as ⊢⍤⌿ (where is atop).
 
Ven
.oO( more readibility? in my trains? ) :P
 
 
3 hours later…
6:06 PM
@FrownyFrog yeah, the dfn is a fallback solution >_>
it contains many monads in a row, so it's better than a train
and an operator making a monad isn't exactly the best for a train (1<∘(≢¨)⊢, nice?)
 
@EriktheOutgolfer If only we had atop (): 1<≢¨⍤⊢
 
@Adám well, maybe it doesn't look very fit for a non-golfing language :P
 
you don’t need either
in this case
 
without f⍤g, (≢¨⊢) == {≢¨⍵}, ugh
 
@EriktheOutgolfer It disturbs me that two "primitives" are written as "nothing", just like traditional mathematics' multiplication is. Isn't that exactly what APL came to fight?
@EriktheOutgolfer The primitives being the atop operator, written as the "nothing" between f and g in (f g) and the the juxtaposition function, written as the "nothing" between and in {⍺ ⍵}. Iverson gave them symbols: and in Sharp APL; @ and ; in J.
 
6:17 PM
the latter is worse imo
 
@Adám yeah, 1) APL is a thinking language, since it's actually a global notation 2) "nothing" is too overloaded, it can mean 3 different things 3) {⍺⍵} isn't practical (and un-ISO-APL-ish too, since the APL-ish variant is parentheses everywhere, yay), let alone the equivalent of putting two functions next to each other on their own (which should at least be done explicitly, as well as putting three functions next to each other, which makes trains confusing...)
@Adám or just a "pair" primitive, which sounds golfy but, well, who wants to use {⍺⍵} in trains
{⍺⍵} is an idiom anyway, so it's not like it's off grounds
nested arrays have been implemented for a reason after all, no?
 
6:34 PM
@EriktheOutgolfer I actually lobbied for dyadic to mean {(⊂⍺),⊆⍵} which pairs nicely with the monadic form (as implemented). This was Iverson's definition for it. But it was voted down. We still have a chance using but it does have its problems as there is no one function which can universally replace the spaces in a b c. But yes, even a simple pair function would be useful, and I'd counter a claim that it is too trivial with the example of the much-loved (at least by golfers and me) .
 
gah, chat lags are annoying
 
I often want something AND something related, like ± on non-scalars. For scalars it is +,- but +⍮- would be nice. Same is with head and tail, ↑{⍺⍵}↓ which would be way more elegant (and tool-of-thought-y) as ↑⍮↓.
Or a matrix and its transpose ⊢⍮⍉
 
@Adám yeah, the spaces can't be replaced by a function, since the function doesn't know anything about its surroundings (is it the right-most occurrence in this expression?)
 
@EriktheOutgolfer works in J
 
@Adám is there any change that there will be operators that should be used in conjunction with ⍠ in the future, by the way? or a syntactic element like that
 
6:40 PM
But then, how about all the mirrorings? ⊢⍮⊖⍮⌽⍮⊖∘⌽ won't work.
@FrownyFrog How so? Given simple arrays, a b and c, what can you put in the spaces of a b c to get (<a),(<b),(<c) ?
 
a;b;c
 
@Adám yeah, ⍮ should be a function
@FrownyFrog would that work even if c is a ≥1-D array?
 
@FrownyFrog What if a =. 1;1 and b =. 2;2 and c =. 3;3 ?
 
yeah
 
I get:
   (1;1);(2;2);(3;3)
┌─────┬─────┬─┬─┐
│┌─┬─┐│┌─┬─┐│3│3│
││1│1│││2│2││ │ │
│└─┴─┘│└─┴─┘│ │ │
└─────┴─────┴─┴─┘
 
6:44 PM
yeah that breaks it
 
^^ that's what I mean
 
I knew it’s easily broken
 
the point is to implement something uniform, nobody likes to implement too many symbols, especially since APL isn't intended for golfing
 
@FrownyFrog Any attempt at implementing it in APL fails as well:
⋄ x←{(⊂⍺),⊆⍵} ⋄ a b c←(,¨1 1)(,¨2 2)(,¨3 3) ⋄ ⎕←a b c ⋄ ⎕←a x b x c
Hey, were is the bot‽
 
boooooot!
 
6:47 PM
@Adám it's not in the room
maybe you closed it accidentally?
 
@EriktheOutgolfer I can't. It runs on a remote server.
 
TIL: compose+!+?=‽, compose+?+!=⸘
 
yeah, good luck daring to use the wrong combination with Adám :P
 
maybe the remote server crashed? :P
 
I don't use a compose key because AltGr is taken by APL and I don't have any other convenient keys
 
6:50 PM
i use the menu key
 
can you use, eh, Scroll Lock? ;)
 
I don't actually have a scroll lock
 
wut, what keyboard is that
 
not even as an Fn-key?
 
6:52 PM
insert? :^)
 
F7 is grappling hook?
 
F7 is connect to remote display
 
ngn
@Pavel try fn+c or fn+k
 
IDK how to check if that actually enabled scroll lock though
Seeing as how scroll lock is useless
 
space is a mining cart
 
6:56 PM
Space is keyboard backlight
 
ngn
@Pavel if you're using linux, there's a util called "xev" - it logs x11 events
 
Neither are scroll lock
 
Modern laptop keyboards are a disgrace. There's so much surface, and all the (surviving) keys are crammed into a small rectangle.
 
There's not that much free space on my keyboard
 
@Pavel ^ that's how it should look.
 
ngn
7:01 PM
@Adám I find my ThinkPad's keyboard quite usable (it looks the same as Pavel's), though older keyboards were of course better
 
we should be expecting Fn1 and Fn2 keys in the future :P or even MetaFn, which chooses from Fn1-Fn5 and eh
 
@EriktheOutgolfer Nah, in the future you'll have to make a special gesture on the (button-less) trackpad to enable Fn-selection mode.
 
I have a slightly older model than the photo I uploaded
I have dedicated volume keys
 
@Adám how many gestures would you even have to remember
 
Also the ThinkVantage button
I still don't know what ThinkVantage does
 
7:05 PM
I mean, 26 letters, 10 numbers, 12 F-keys, 10 symbols (where one is unnecessary), 6 modifiers (3 left, 3 right), 3 locks, 2 OS, 2 menu, 4 arrows, 1 return, 5 other, 16 Num-keys
yikes, why do I have to BUY that
 
@Adám yeah, I just comment as to how the first (apparently third) result isn't at all free
 
ngn
@EriktheOutgolfer don't assume google results are observer-independent :)
 
oh, and this, wth‽
 
@EriktheOutgolfer whats the unnecessary symbol
 
7:17 PM
@betseg <, where Shift+<=>
left of Z
 
why is it unnecessary :thinking:
 
hm, it actually seems more equivalent to \, | on my keyboard in Windows 10 April Update, not sure why
 
 
2 hours later…
9:45 PM
This might seem like a dumb question ... but for Phase II should I remove the two comment lines for each solution?
 
@Zacharý Doesn't matter.
 
Okay.
 
 
2 hours later…
ngn
11:22 PM
@Adám did you see my repro for the ⎕ns bug?
 
@ngn I saw:
a←⎕fix'file://a.dyalog'
'#'⎕ns a.b
'#'⎕ns a.c ⍝ DOMAIN ERROR
… but you never told me what the file contained.
 
@ngn Somehow missed that. I'll mantis it.
 
ngn
@Adám thanks, did you try to reproduce it on windows? I'm curious what might be causing that. It's very strange that the presence of the 3rd subnamespace has any significance.
 
@ngn It repros by me too, but the following also fails:
:Namespace a
    :namespace b
        f←{}
    :endnamespace
    :namespace c
        g←{}
    :endnamespace
:EndNamespace
'#'⎕NS a.b
'#'⎕NS a.b
 
ngn
11:33 PM
@Adám same here
but I would expect an error - the imported names are already present
 
@ngn Why, shouldn't they just be overwritten?
 
ngn
I don't know
the more interesting case is importing both a.b and a.c
it doesn't fail for me when a.d is not present
and it fails when a.d is present
 
@ngn Docs say: If X is the name of an existing namespace (name class 9), the contents of Y, including any GUI components, are merged into X. Any items in X with corresponding names in Y (names with the same path in both Y and X) will be replaced by the names in Y, unless they have a conflicting name class in which case the existing items in X will remain unchanged.
 
ngn
@Adám oh, ok, then your repro is interesting too :)
 
@ngn 15881
 
ngn
11:44 PM
@Adám mantis number? is it publicly accessible?
 
@ngn Yes. It isn't publicly accessible, but for your records, and notes from a future release or update may include it. Since this discussion has been public, why not have me post here when it is fixed?
 
ngn
@Adám I see. It's not really a problem for me, to be honest, so "low prio" would be appropriate. I just wanted to get to the bottom of it.
 
@ngn It is with low priority. :-)
 
ngn
to change the topic completely, I've discovered a horrible bug in ngn/k
 
@ngn Are you at liberty to disclose it?
 
ngn
11:54 PM
0 1#0 crashes - that's like 0 1⍴0 in APL
 
@ngn Isn't that pretty useless in K, as it would be the same as 0#0 and 0 0#0, no?
 
ngn
@Adám not in k5, empty generic arrays had prototypical elements there
it should return something like: 0#,0N
 
@ngn Oh wow, like proper nested prototypes a la APL? Not like J's downgrade prototypes?
@ngn Huh, what is that even? 0⍴⊂NaN?
 
ngn
@Adám I don't know enough J to compare with it (I wish I knew some J)
@Adám going slightly off-topic here: 0N is the "integer null"
0x8000...0
 

« first day (482 days earlier)      last day (2162 days later) »