« first day (1369 days earlier)      last day (1268 days later) » 

12:18 AM
Whoa, I didn't know that in tryapl.org/# you can press `something to type that character, IMO that should be much more obvious
One of the things that puts people off (I assume) is having to press the buttons on the keyboard, and that makes it much easier
 
 
5 hours later…
5:35 AM
@rak1507 Right, the soon-to-be-released Try APL 3.0 shows that on the tooltip.
 
 
3 hours later…
8:20 AM
Oh, I managed to build something that runs in the browser.
Note that the standard library isn't available, so things like if/while doesn't work.
 
@EliasMårtenson That's neat. And fast. Interesting that I "cannot press Enter" on statements that would error :-)
@EliasMårtenson 0 0 0 0⍴5 and 0 0 0⍴5 print the same.
@EliasMårtenson Would it be possible to scroll to the bottom every time a result is printed?
@EliasMårtenson Is it possible to define a function?
 
8:36 AM
Yes to all
Currently, you have to use the KAP-specific syntax for defining functions:
You can define a function that takes one left-side argument and two right-side arguments like so: ∇ (a) foo (b;c) { a+b+c }
It can then be called like this: 10 foo (20;30)
I'm considering supporting a←{⍵+⍺} as well. However, I'm not a fan of that because it's inconsistent.
Currently I'm not displaying error messages (you can see then in the JS console though)
Also, I will implement the nicer formatter using HTML tables.
And scroll to bottom, of course.
This is just the absolutely first version that actually runs. I was pretty happy about being able to get that far, so I wanted to upload it right away. Next step is learning React. :-)
And yes, the pretty-printing doesn't show the dimensionality.
 
Oh yes, this is pretty amazing.
What is the significance of the result from 'a',2 ?
 
The only demo code I have is this:
Haha. Yeah, that looks weird doesn't it.
Let me break it down:
So remember that strings are quoted using double quotes, not single quotes.
 
Right.
 
Single quote is the symbol quotation character, so 'foo is the symbol foo itself (not its value). So what you typed yielded: the symbol a, the symbol , and the digit 2.
The symbols are prefixed with default: because they are in the default namespace.
If you wanted an array of the character a and the digit 2, you have to type @a 2. Or you can type "a"[0] 2
Because characters are escaped using @. That's something I mentioned before that I'm not happy with and should probably change. It's a bit ugly.
 
@EliasMårtenson Consider allowing as that is universally understood.
 
8:45 AM
@Adám ``
 
@DyalogAPL Shh!
 
@Adám It is allowed. Both types of diamond characters are available and should behave identical.
Doesn't it work?
 
Oh, I didn't even try. Sorry.
 
I prefer the other one simply because the Dyalog one looks horrible with my preferred font :-)
 
@EliasMårtenson Do you use ` for anything?
 
8:47 AM
@Adám No. Bot someone suggested I use it for line continuation
 
@EliasMårtenson Which font.
 
But perhaps I could use it for both,
@Adám GNU FreeMono
 
@EliasMårtenson You mean both for line continuation and for…?
 
@Adám Both character escape and line continuation
 
Then you can't escape the newline to mean the character.
 
8:48 AM
So backquote-a would yield "a"[0]
 
Yeah, that'd be nicer than @a
 
@Adám I intend to support Unicode escapes too, so you'll be able to use `\NEWLINE or something like that
 
Although I still think 'a' makes most sense for that, and then `a for the symbol.
Anyway, gotta get kids ready for school. Keep up the good work!
 
Hmm... Well 'a I guess, just liek BQN?
Thanks. I have to play volleyball with the kids now.
 
@Adám first, the distribution of lengths of the "unique elements" of a random permutation of the same array, and the second a pattern i noticed in the ≢∪ of a sorted array
 
9:06 AM
@EliasMårtenson BQN uses 'a'
@dzaima OK, but you're not reporting a bug or anything?
 
@Adám no
 
ngn
9:57 AM
@EliasMårtenson very nice and you did it sooner than i expected
@EliasMårtenson huh. why?
@EliasMårtenson html tables - not essential, i think you should do that later. scrolling to the bottom - yes please. react - what for?!
 
@ngn Well, because the thing uses React.
 
ngn
10:41 AM
@EliasMårtenson seems like overkill to me
 
@ngn Name one JS lib you do not consider overkill ;-)
 
@EliasMårtenson what thing? (also weren't you just concerned about dependencies for a grapheme lib?)
 
ngn
@Adám codemirror
 
Is it just me or has aplwiki's cert expired
 
@rak1507 "10/25/20" certainly has
 
10:47 AM
@EliasMårtenson are there KAP docs anywhere?
 
@rak1507 Thanks for the heads-up. I'll see to it that this is sorted.
 
hm, hadn't actually thought about what dyalog does for boxing high rank arrays - this certainly doesn't feel "correct"
 
RGS
11:11 AM
@Adám vanillajs?
 
@RGS Yup, I use that all the time, even though it does have way more features than I actually need.
@RGS Btw, is this something to mention on APL Wiki?
 
@dzaima Yes, I was. But I also wanted to learn Kotlin JS, and react seems popular with it.
The point is that I don't want the JS version to be dependent on too many libraries. The Web Client can have more.
Anyway, I added the initial attempt at a HTML table renderer. I also print error messages now:
Oh, and it now scrolls to the bottom :-)
 
@EliasMårtenson 2 2 2 2⍴⍳16 appears to give a single line of output - you still want to <pre> & monospace it
(also the output for it is interesting - i'd expect the 2 2⍴4 5 6 7 to be to the right of 2 2⍴0 1 2 3, but it's below it)
(i was just thinking about this:)
https://dzaima.github.io/paste/#0pZPBTsJAEIbvfYpJeAEXBMG3gVgDiXRJC4EjQsJBPaDuJhzUxEQSDz1w4MCBxHfZJ7Gztd1KZ2mVZDrZTmdnu1/@HwCqavplnvWdWkjWgAp4o37H9QMIunzswbg37EKHT9wArrkPV26fe8HQbw973GvfwGDkD3jgBo4SD2rxpMQ0FxuqGMXSUYtn3PbzHqYflJhb6rPonFkUcIaJ6Zc5Ls8x1eOPcc9Lsm2fLD50L1lP51Yx1czcBqaL7FyRbNsmi5XuJeu451WJWyLkPV0X6/ic/3FpYmql/8/wPqx2MheGvJnhzZA3q5/ERVh0sbPUVw5kRasF2yR1t6G0ZpiGOZrhIUd93fS2eFlCW/scvf0hN8Rv1IRiIrS0zdHaHue0I9g4TgW4f/mbUcbYdoPK9d8NKh/LGxR7yxoUe8saNJ5bzqDYaxOifFNySUVoqb/bDVrIpQlRakH6/yUNWsglY9B4bjmDHuNiM6j8PNWghOJIgxqadoPq2xYY1NCzG1TPKTCooXXcoASh1Tc#BQN
 
11:30 AM
You're right. Let me fix the obvious font issue
It's because I really can't handle anything over 4 dimensions right now, and I neve rtested above 2 :-)
(i.e. I only use HTML Teabl for 1 and 2-dimensional output
 
@ShayaUlman Sholoym aleichem. Interested in APL?
 
@EliasMårtenson that's understandable; you just got unlucky as i was in the middle of thinking about higher ranks :p
@dzaima hm, i still need the arrows for the inner matrices, and the outer cell could be 1×1, bringing me back to step 1, and i kind of want to avoid strong-boxing the outside while possible
 
@yossizahn Hi. Interested in APL?
 
@dzaima Anyway, I did some fixes now. :-)
Still can't print anything higher than 4 dimensions, but that will have to do for now.
@rak1507 No docs yet. I will write some once I am feature complete.
 
Who needs more than 4 dimensions anyway ;)
 
11:45 AM
@dzaima As for the output of 4-dimensional structures. It's intentional. It might not be ideal, but it is intentional. :-) I even put a comment about it in the code. github.com/lokedhs/array/blob/master/array/src/commonMain/…
 
ngn
@RGS genius :D
 
more prototype:
https://dzaima.github.io/paste#03ZTbSsNAEIbv5ykG@gKuPVjFl1GstKCNJC16qRV6oYLVbqh4AMEDiLlr7hrwXfZJ3N2ck9lI2zths@zM7oSdL39@RNwU5z/p83Elxi5rYQ37w@P9ju2g07VO@3jaG3Rx3zrrOHho2XjQObb6zsDeG/Ss/t4RngztE8vpOACC34rxveAXpTGnknJMQYyngt/osnPBPT3LMRH80pQHtTee4obgI2RyiuKGipthrM/w57gsiBfvFfmwZiSpyKkevVcuW2rayr6Xx2V@vHioyMuaN7p/99rA5Rsq@v@LS1vddzvhwlQ/rL42F6Z4M5ZwYYo3a67FZWbof2HIPwFmVasV2yZ1N6e0lrLzSjS9IkfdbkJRNUtoKyjRC4rcFP5UTUpMhJb8Ei2/mtOCZsMkk90MnAZk1FIYE9D3IMU00nv5nyzM0SKJ9nI/T5QjP77a49Sl1HbYSO4jNyrMZQpLmgUsaQKwmoifAKCGlr2TF23GakG4XN3anZTGJ5WUY2Z2TPfOlAe1l4MQxqljRmdIKOZ8WJOFFcapY8ZnKHjmv
 
ngn
i would add: according to some benchmarks, vanillajs code can be faster than js code ;)
 
:D
@EliasMårtenson yeah, my prototypes get around that by making layers of 3D arrays get printed horizontally rather than vertically
 
@dzaima Oh, very nice with the arrows.
Maybe I should do the same.
 
11:59 AM
@EliasMårtenson stolen from dyalog
 
RGS
@Adám lstlisting is a pretty useful package, so I guess it is a matter of testing it and, if it works, yes
@EliasMårtenson If it is not much trouble, yes please. Can you link me to it? Or how would you rather do it?
@RGS I found this link when I was first trying to get APL to work with latex, but when I found this link I didn't understand the problem well enough and so I couldn't check if what the link suggests is good or not
 
ngn
12:27 PM
@EliasMårtenson so, what is it that makes you say dfns are inconsistent?
 
@ngn i'd guess the issue is more about assignment than dfns
 
ngn
@dzaima what is inconsistent about assignment then?
(i hope i haven't missed some important conversation from chat)
 
@ngn you haven't afaik
@dzaima interestingly, you can define a function overriding an array variable of the same name, but can't assign an array to a variable of a function
 
ngn
oh, so the concern is about changing kind ("nameclass")
 
@ngn that's just a side-note of mine (more an inconsistency that i assume isn't intentional). With APL syntax to allow assigning functions, though, it does take separate "syntax" unless your assignment is overly generic (at which point you risk allowing incredibly stupid things that dzaima/APL allowed - a←← would assingn to a and a←[2] would assign the internal temporary bracket object :P)
@dzaima (huh, that was quite a while ago)
 
12:42 PM
I'll explain when I come back home. I have to leave for a while.
 
 
1 hour later…
1:49 PM
yay it works
https://dzaima.github.io/paste/#07VrBasMwDL37K0K/YOt27EfsJ/YDo5fdshRy2AYri0MD6S5bexjtrb0lsH/xF@wT5jmNI3DimNkUMQQKdWRZeVIdPQsSRZGI32/ubufz@2gq4q/@a/s4m3y/5Z8TJviLSF8Ff0AgBxwwpGQyL4sQqfEPKUOFROUlzcYAHbxDcvGACAkDgJ6Vu1jJvh1IWSob@2wID5iQMAioKTmCJ3pg0/usOvsTQZx8DTJRg/HGYTaUByxIYF6Sgfwl1n/yb6vO/UQYJweZOIJx4TAbygMWJDovH7Yqmj9Za@wukAdESOB@8a/2IfgCBxLiC@IL4gviC76yVtHKOlsG8oAICRsnHhcZIScX2aFCovcLjn4UDRLqR@l8QecLOl/Q@YL6UepHiS@IL4gviC@oHw3bj668e7jK20OJCgkLASWUVGiQlCyCHybM9FcI7UCk@TX7JeTuJbTLkqnyBRnc5HHN5omy7hrIvZ7o0zTWasGF/LnsveusTjRSt9TRq@msk6m8rgbutBUHRakY0Jys10bEtaHZQN//MAfciPhoaIrGmjv
@dzaima (but just the array formatting is already 160lns, 5800 chars of java :/)
 
2:21 PM
@dzaima strings are weird, but ¯\_(ツ)_/¯
 
@dzaima OK, here's the deal. ← assigns values. A bare {1+⍵} is not a first-class value, it's a function. A first-class function closure has the syntax λ{1+⍵}.
So that means that ← would end up assigning a value if the right-hand side is a value, or it would act as a function declaration if the right-hand side happens to be a function.
KAP needs to be more strict than Dyalog here since it parses everything into an AST up front
 
2:40 PM
@EliasMårtenson ngn/apl also does. Since functions defined with already work, can't you just reuse that for -assignments?
 
@dzaima Yes. I definitely can.
And I'm considering it, because of familiarity for APL users.
 
I've noticed the following error: Could not load bridge interface functions. (Error 0x0065ebc8: "image not already loaded") whenever I do a ]LINK.Create -- although the link seems to work from what I can tell.
 
Finally managed to get the support files to load properly in the web ui
Ugly solution, but works. It downloads them all at startup and then simply returns that data when the code wants to load a file.
 
Is there a way to get (⊂1000 1000)-⍳2000 2000 without getting a WS full error?
I wish APL was lazily evaluated, would make iterative solutions to problems a lot easier
 
@rak1507 start APL with a higher MAXWS
 
2:50 PM
I would rather not, because then I'm forced to try and come up with more efficient solutions
 
@rak1507 that array "only" takes ~360MB
@rak1507 why would that be the case?
@dzaima actually, only ~200mb after a call to ⎕wa but creating it apparently takes more
 
Whenever I get a WS full error it's probably because I'm doing something stupid, and the error makes me think about what I'm doing, which normally leads to a better solution
 
@rak1507 ⍳2000 2000 creates 4 million 2-item vectors (each individually allocated), which understandably is bad
 
And then I apply a fairly costly function to each of them with ¨, which is also bad... maybe I should rethink this
 
you can do 1000 1000-⍤1↑⍳2000 2000, but that creates a rank 3 array which might be harder to use
and ⍴{≢1000 1000-⍵}¨⍳2000 2000 is on the edge of WS erroring for me - replacing with +/ crosses the line
@dzaima huh
 
3:01 PM
@rak1507 KAP can do it, since it's lazily evaluated :-)
Well, it cannot because it's a bit incompatible in this respect, but it does work.
 
KAP doesn't have dfns.pco :(
 
(2000 2000 2000⍴⍳1000000)[123;928;1010] works fine :-)
@rak1507 What does it do?
 
Primality check
I can probably use a slow one
 
I see. How is it implemented in Dyalog?
 
@EliasMårtenson source (it's a bunch more than just primality check)
 
3:05 PM
I think it hardcodes the primes and checks with ∊
Oh yeah
{(⌷∘⍵)¨(⍸⊢=⌈/⍤,){(a b)←⍵ ⋄ {(2=0+.=⍳|⊢) b+⍵×a+⍵:∇ ⍵+1 ⋄ ⍵}0}¨⍵}(⊂1000 1000)-⍳2000 2000 @EliasMårtenson KAP doesn't like something here
 
@rak1507 it probably doesn't like a lot there
 
Probably
 
@dzaima Thanks. I think I have a new project: To get that one running. :-)
 
it doesn't have: vector argument for ; scalar extension for pervasive functions; any dyadic operators you've used there; trains
 
@dzaima Correct. I haven't implemented that yet. And in some cases it will have different syntax.
 
3:07 PM
@EliasMårtenson ((2000 2000⍴⊂1000 1000)-(⍳2000)∘.,⍳2000)[123 456;43 23] is closer to the actual problem at hand
 
Ah, well that is inconvenient
 
The colon thing, for example, exists but has imperative syntax: if (x) {foo} else {bar}
 
How can I type multiple line things so I can use :For?
I can one line it with ⋄ but that's going to get quite clunky
 
Thank you everybody. All this discussion here has shown me where I need to put some work in to make sure my implementation is complete enough.
 
@dzaima actually, it does have +.×
@dzaima also doesn't have: for recursion; ; multiple assignment
@dzaima also, it seems that there is scalar extension, but it's only for simple scalars (i.e. 1 2 3+1 works but 1 2 3+⊂1 2 doesn't)
 
3:20 PM
Expected function, got: [object Object]... oops
 
Oh scalar extension for enclosed arrays. You're right. I simply never gave that any thought.
Next on my list :-)
That list grows quickly, but please don't think I'm not appreciating your feedback. It's amazing.
 
Looks like ⍣ isn't a thing either?
 
@rak1507 it is, but only with a function right operand
 
@rak1507 It is a thing, but only the dyadic operator version
So {...}⍣{...} works, but {...}⍣123 doesn't
 
@EliasMårtenson fwiw {...}⍣123 is still a derived dyadic operator
 
3:22 PM
That's mostly because currently I've based a lot of my work on the ISO spec, which doesn't include operators with arguments.
@dzaima True, but the issue is that just like ISO, I currently don't have a way to handle operators with arguments. The ∘ is a very poorly defined special-case in the spec.
 
Ahh, I'm so annoyed, I've been confused about why my answer to a project euler question was wrong, and it's because I pasted in ¯number, and it wants -number
 
In fact, I checked the spec again yesterday after the discussion we had, and it's inconsistently defined.
Who was it that wanted a copy of the spec? Should I attach it here?
 
@Adám Oh... was just looking around :)
 
I think it was me, and yeah that would be useful I think
mp←ma←mb←0 ⋄ :For a :In 1000-⍳1999 ⋄ :For b :In 1001-⍳2001 ⋄ p←{1pco b+⍵×a+⍵:∇⍵+1⋄⍵}0 ⋄ :If p>mp ⋄ mp←p ⋄ ma←a ⋄ mb←b ⋄ :EndIf ⋄ :EndFor ⋄ :EndFor ⋄ ma×mb
 
@xpqz You get that in the Status window, right?
 
3:27 PM
not my best bit of APL...
 
If you want to have fun, read the description of ⍤ and tell me if it's clear.
 
@Adám Yes, a window popped up. Not seen that before as far as I recall.
 
ngn
@EliasMårtenson what are you trying to achieve with this implementation? if you don't stay focused, if you keep saying yes to everything, you'll probably run out of resources and motivation rather soon.
 
I am about to tweet my APL solution to this problem: https://leetcode.com/problems/slowest-key/

slowestKey ← {⎕UCS⌈/⎕UCS((⌈/=⊢)2-⍨/0,⍺)/⍵}
If anyone has a better one, I will include it
 
@ngn Well, it's quite simple really: The main driver is as an experiment in dynamically parallel, immutable and lazy-evaluated APL.
 
ngn
3:32 PM
@EliasMårtenson there's no good reason why dfns can't be considered values. i don't understand why you need the extra lambda.
 
Now, part of that is achieved, while others are still a work in progress.
@ngn Because variables can change, while function definitions can't.
 
@ngn the λ there seems to be like ⎕OR in Dyalog - arrayifying a function
 
@rak1507 You can do )ed Foo to define a "tradfn" where you can use ctrl structs, or enable multi-line input with an envvar.
 
ngn
@EliasMårtenson in many languages functions can change. a function is just a name-value association whose value happens to be a functional object, just like an ordinary variable
 
@ngn kap is statically compiled though, it needs to know the variable "type" at compile-time
 
3:35 PM
@code_report I'll have a look in a few mins.
 
ngn
@dzaima "type" being array|fn|mop|dop?
 
@ShayaUlman I'll be happy to give you an intro.
 
Let's say I have a loop. Going into the loop A is assigned the scalar 10. Now, in the loop, there is the following instruction: foo a b. The parser parses this as (call foo (args: a b)). However, later in the loop, a is assigned to be a function. The next time around you'll still call foo with the two arguments a and b.
This is because the code is parsed once: At function declaration time.
 
@xpqz Do you have .NET Core installed?
 
ngn
@EliasMårtenson the solution is simple: ban such changes :)
even dyalog (which is very dynamic, as you know) doesn't allow changes of "nameclass"
 
3:38 PM
@ngn Not entirely true. Also, do you know why?
 
@ngn yeah. i assume same thing you had to do in ngn/apl (you couldn't not have varying behavior between a←1 and a←+)
 
Maybe using ⍒ or ⍋ instead of ⎕UCS could be nicer? @code_report
 
ngn
@Adám there can be many answers to a "why" question. which do you have in mind?
 
@ngn All of them.
 
ngn
@dzaima right
 
3:40 PM
@Adám that sounds windowsy. I've only installed the Dyalog-macos and LINK from source.
 
@xpqz Quite the opposite. Windows comes with .NET Framework, so it doesn't really need Core. Link is looking for .NET Core and the status window is a side effect of looking for it. Safe to ignore. Feel free to log an issue complaining about it.
@code_report {⍵⌷⍨⊃⍒⍵,⍨⍪2-⍨/0,⍺}
 
ngn
@dzaima the only problem is that operands to operators must always be functions, or else the kind inference algorithm would be too complicated
 
Anyone know a numpy equivalent of ⍳10 10?
 
@rak1507 You should be able to use base conversions to generate that: {⍵⍴,⌿⍵⊤⍳×/⍵}10 10
 
Not quite the same, and I still have no idea how I'd port that to python
 
3:45 PM
@Adám doesn't seem to work
 
@ngn where? ngn/apl seems to handle array operands just fine
 
Works for me @code_report
 
@code_report How so?
⋄ (9,29,49,50){⍵⌷⍨⊃⍒⍵,⍨⍪2-⍨/0,⍺}'cbcd'
(12,23,36,46,62){⍵⌷⍨⊃⍒⍵,⍨⍪2-⍨/0,⍺}'spuda'
 
@Adám
c
a
 
⋄ 9 29 49 50 {⍵⌷⍨⊃⍒⍵,⍨⍪2-⍨/0,⍺} 'cbcd'
 
3:48 PM
@code_report c
 
@Adám doesn't seem to work on tryapl.org
 
@code_report That's because TryAPL runs an old version.
 
🙃
 
ngn
@dzaima for instance if you try to do 1{⍺⍺+⍵⍵}2⊢3
 
The function gets the lexicographically largest entry from a mixed-type table, and that was only added in 17.0. Try APL runs 16.0, but we're working on upgrading it.
 
3:52 PM
@ngn ah, custom operator operands
 
@code_report {⍵⌷⍨⊃⍒⍕⍵,⍨⍪2-⍨/0,⍺} works.
 
ngn
@dzaima right, i should have clarified. builtins don't care about the superficial syntax and its "kinds", they work only with values.
looking at my own code from a couple of years ago - how could i have written that?! it's so verbose..
 
your own APL code?
 
ngn
@rak1507 js code implementing an apl interpreter
 
ah cool
 
3:57 PM
@code_report Neater version of your approach: {(⊃∘⍒⊃⊢)((⌈/=⊢)2-⍨/0,⍺)/⍵}
 
4:29 PM
@ngn Well, I don't ban it. It's just that the effect will only happen in newly defined functions.
 
ngn
@EliasMårtenson wouldn't it be simpler if you ban kind changes?
 
@EliasMårtenson i'd suggest banning type changing even if it's not strictly necessary
 
ngn
if you do, every variable's kind can be inferred at compile time
 
However, if I don't have the λ syntax, then how would you define, say, an array of mixed numbers and functions. I can do foo ← 1 2 λ{⍵+200} 3 4 λ{⍵+100} 5 6
Without λ how can I achieve that?
That's an array of 8 values. 6 numbers and two functions.
 
ngn
apl doesn't allow that (dyalog allows it through namespace hacks)
 
4:31 PM
@rak1507 Pretty sure there isn't any easy equivalent. You're going to have to write some loops/maps. There are functions that will give you each individual coordinate (e.g. 1⊃¨⍳10 10) if you're able to use that form.
 
@ngn But KAP does, which is why I have that syntax. I mean, I think the question was why I chose that syntax.
 
ngn
@EliasMårtenson isn't KAP your own implementation?
 
@ngn also through ⎕OR
 
@ngn Yes it is. But I was explaining why I need some syntax like that in order to make closures truly first class.
@dzaima But ⎕OR doesn't capture a closure, does it?
 
@EliasMårtenson well, it can't because there are no closures
 
4:35 PM
@ngn ?
 
@dzaima Fair enough. But once you have the ⎕OR, how do you call it? It's not clear to me from the documentation. If you do x ← ⎕OR{⍵+200}, can I simply call that function like so? x 10
 
ngn
@Adám mixing functions with arrays in the same array (i was replying to elias)
 
@dzaima Which is arguably an implementation bug. The fact that variables vanish when the containing function returns is completely unspecified as far as I know.
@EliasMårtenson Function ⎕ORs turn into functions when used as operands, so a convenient trick is x∘⊢ 10.
 
@Marshall I see. That does seem to cover most use cases.
 
@EliasMårtenson (i wasn't mentioning ⎕OR as a good way to do things, but just to make a better comparison for what λ is)
 
4:39 PM
If the previous link to the apl spec didn't work because of permissions, here is a new one: drive.google.com/file/d/1FPqYokZ5SvY_wZ_tegK8oGseUEcKgw1E/…
@dzaima Actually, I think it's pretty close. Because to invoke a lambda in KAP you need to use a special syntax (currently ⍞)
Which would be equivalent to Dyalog's x∘⊢
 
@EliasMårtenson also ⎕OR takes as its right argument a string of a function name to take the value from, so that'd have to be f←{⍵+200} ⋄ x←⎕OR'f'
 
@dzaima But you could hide that mess behind a defined operator, can't you?
 
@EliasMårtenson not for arrayified operators
 
@ngn Show me.
 
@dzaima Thank you. I'm learning a lot :-)
 
ngn
4:47 PM
@Adám oh crap.. it can't even do that
 
;-)
 
ngn
it can make an array of functions, but not mixed
 
@Marshall Cool, I never knew that worked other than with dops. No particular reason why there'd be a difference, but I simply didn't think of it. Thanks!
 
Time to go to sleep. Thanks everybody.
 
○/
 
ngn
4:55 PM
o/
 
@ngn What is o?
 
ngn
my head, swollen from too much useless information
 
→0
 
ngn
what is that?
 
Quit.
 
ngn
5:00 PM
i should quit apl?
 
If your head swells, then up, then yes. But I just mean you should get some rest.
 
ngn
well, someone has to troll this chat room :)
 

« first day (1369 days earlier)      last day (1268 days later) »