« first day (266 days earlier)      last day (2387 days later) » 
05:00 - 18:0018:00 - 22:00

5:48 AM
0
Q: APL Component Files vs. Native Files vs. Databases

Apollo 42I'm new to APL and am starting to work on an APL code base which uses APL Component Files (e.g. []FSTIE, []FREAD, []FAPPEND) heavily. I have also been asked to research transfering the contents of these component files to an SQL database, the point of which would be to make the data available to...

 
 
5 hours later…
10:52 AM
@Uriel I think 22nd is included.
 
11:30 AM
@Adám great, thanks
 
 
2 hours later…
Ven
1:46 PM
@Adám could you maybe help me figure out the fault in my unicode? I'm a bit stuck at so why I have an issue with my snippet, for the codegolf challenge.
 
@Ven Fault in your Unicode?
 
Ven
@Adám Sorry, that was an awful pun on "a fault in our stars"(a movie). Though I guess I should've said EBCDIC.
 
@Ven What does your code look like?
 
@Adám how do you assign to a varialbe in apl? it's not ?
 
Ven
1:52 PM
@EriktheOutgolfer it is
 
@EriktheOutgolfer Yes.
 
Ven
@EriktheOutgolfer are you trying to assign to ?
 
because I want to try something on tio, and I want the header to say (variable) ← { but it doesn't seem to work
 
@EriktheOutgolfer You want the character '{' ?
 
no
I want to assign to function
 
Ven
1:53 PM
@EriktheOutgolfer Don't use (var), just var.
 
Ven
(var) is for destructuring. i.e. (a b c)←1 2 3
 
the () is just notation stuff :p
 
Ven
okay :)
 
(man I'm used to jelly so much)
 
1:53 PM
Meh, he can use parens if he wants. Work too.
 
Ven
@Adám not for functions tho
 
for example this doesn't work
is delta even in the codepage?
 
@EriktheOutgolfer You need a space between and 1
 
oh you do?
but it still doesn't work
maybe I need some explicit print statement?
 
@EriktheOutgolfer Oh, and you are using the wrong delta (a Greek one). You need the APL one:
 
1:55 PM
>_>
 
Furthermore, ⌈/ is not a valid statement.
 
I need the apl omega right
 
Yeah, I ⎕ Unicode.
@EriktheOutgolfer Yes, and the APL alpha, and iota, and a specific epsilon.
 
Ven
@EriktheOutgolfer Try it online!
 
so I don't need explicit print...phew
 
1:57 PM
@Ven You don't need ⎕← there.
 
ninja :p
 
Ven
@Adám ah :)
 
btw is there a page that contains the dyalog apl codepage?
that is, for dyalog classic
 
@EriktheOutgolfer Nope. I was telling Ven that he didn't need explicit output in a different place that what you realised.
 
where you pinged is where I realised
 
1:58 PM
@EriktheOutgolfer ⎕AV and ⎕AVU: Try it online!
 
43
A: When can APL characters be counted as 1 byte each?

Adám GNU APL and ngn/apl use UTF-8, so use a byte counting tool. NARS2000 only uses UCS-2, so 2 bytes per character. IBM's APL2 is the only modern APL that natively supports APL EBCDIC, so 1 byte per character. Dyalog APL uses any Unicode format, or the classic Dyalog character set (Table 1 below).* ...

 
what the heck are all those squares and encoding failures lol
 
@EriktheOutgolfer That's the codepage. You your OS/browser cannot display it, so be it.
@EriktheOutgolfer You probably need the APL385 Unicode font installed.
 
actually those are all 0x2337
 
@EriktheOutgolfer Ah, I guess TIO has trouble with them then.
 
2:02 PM
this is what ⎕AV shows for me
⌷

 ⌷⌷⌷⌷⌷⌶ɫ%'⍺⍵_abcdefghijklmnopqrstuvwxyz⌷⌷¯.⍬0123456789⌷⊢⌷$£¢∆ABCDEFGHIJKLMNOPQRSTUVWXYZ⌷⌷⌷⌷⌷⍙ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ{€}⊣⌷¨⌷⌷⌷⌷⍨⌷⌷⌷⌷⌷⌷⌷⌷⌷⌷⌷⌷⌷⌷⌷⌷⌷⌷⌷⌷⌷[/⌿\⍀<≤=≥>≠∨∧-+÷×?∊⍴~↑↓⍳○*⌈⌊∇∘(⊂⊃∩∪⊥⊤|;,⍱⍲⍒⍋⍉⌽⊖⍟⌹!⍕⍎⍫⍪≡≢⌷⌷⌷⌷"#⌷&'┘┐┌└┼─├┤┴┬│@⌷⌷⌷^⌷`∣⌷:⍷⌷⌷⋄←→⍝)]⌷⌷⌷⎕⍞⍣
you see all those rectangles in there?
maybe those are empty places in the codepage?
@Adám
 
Nope. It should be {€}⊣⌷¨ÀÄÅÆ⍨ÉÑÖØÜßàáâäåæçèéêëíîïñ[
 
but I think tio can handle those chars, maybe it's an issue with how tio uses the interpreter or the interpreter itself?
 
@EriktheOutgolfer That's because you're using Classic instead of unicode.
you pasted Unicode in. But necessarily, Classic cannot handle those points. The same GLYPHS are in different positions in its character set.
 
wait so classic only gets chars 0x00-0xFF?
 
tl;dr: Don't use Classic. Use Unicode, and remember to count the few non-Classic chars as 4, 6 or 7 bytes.
 
2:08 PM
wait huh
oh
 
@EriktheOutgolfer Only those bytes on disk and in memory, yes, but they are mapped to various Unicode code points with ⎕AVU.
 
the 4, 6 or 7 thing is how you'd represent them in ascii-code notation right
and no apparently I don't need any "apl font"...
tio uses roboto iirc
 
@EriktheOutgolfer No DejaVu Sans Mono
 
whatever
at least now it works
 
@EriktheOutgolfer No, it is just that Classic has drop-ins for the missing glyphs, namely ⎕Uxxxx where xxxx is the Unicode hex value. But for you can also use ⎕OPT.
 
2:11 PM
that's what I meant
 
The 6/7 is because you sometimes need a space after the last hex digit like ∆ 1.
 
so isn't in the classic codepage?
 
@EriktheOutgolfer Well, it isn't ascii, because Classic has 256 points, not 128, and anyway, the first 128 are not ascii.
 
@Adám you mean the last 128
 
@EriktheOutgolfer Yes it is.
 
2:12 PM
why does it need a space afterwards then
 
@EriktheOutgolfer No, the first 128 are not ascii, the last 128 are obviously not ascii.
@EriktheOutgolfer Because is a valid identifier char, so ∆1 is a distinct name.
 
Names can also begin with followed by alphanumerics, and so ⎕U1234A is distinct from ⎕U1234 A
We are deliberately trying to make life miserable for Classic users, to persuade them to move to Unicode.
 
so...tried to enter the competition, but couldn't understand what the test cases mean exactly
@Adám not a golfing language :p
like, what is ⎕AVU/⍨⎕AVU<255 supposed to mean
 
@EriktheOutgolfer But, if you insist on using Classic on TIO, you can just enter all that chars as if it was unicode. Classic can actually read Unicode files, and auto-translates invalid chars to the longer drop-in names.
 
2:15 PM
no I don't
 
@EriktheOutgolfer That is just an easy way to get some pseudo-random test data. Try it online!
 
so you do it like this
(note: actual function not implemented yet)
 
@EriktheOutgolfer That's one way to do it, yes. But on PPCG, I count { and }.
On codegolf.co.uk you can enter the code with or without braces. They will be counted identically.
 
I want codegolf.co.uk that's why I left out the braces
I assumed it needs a full program there
 
It needs an anonymous one-liner dfn (with or without braces.) or a tacit function.
 
2:21 PM
so I'm doing it right I assume
also how do you map like this?
 
As I said, it doesn't matter whether you enter the braces or not, they will be added by the framework.
@EriktheOutgolfer Map?
 
oh wait I don't lol
I wanted to do something like (1 2 3 4 5) + 2
but then I remembered that in apl you can just type exactly that...?
 
You don't need parens.
(Here is a look at how Classic auto-translates: Try it online!)
* looks at Ven's code *
 
bleh ven's code has very ungolfy footer :p
also @Adám what do the "ML" and "IO" things do on apl.codegolf.co.uk?
 
@EriktheOutgolfer ⎕IO is a variable that you can only set to 0 or 1. It is the Index Origin.
Sometimes you can write a shorter solution by changing it, and it won't cost you bytes (neither on PPCG, nor on codegolf.co.uk)
 
2:28 PM
is there any cheat sheet for all those quad variables?
like that index origin
 
⎕ML is only for historic reasons. Some people come to Dyalog from other APLs where a few symbols' meanings were swapped. You don't need anything but 1. In fact, ⎕ML←1 has an extra function.
@EriktheOutgolfer System Variables
 
so the io thingy is to choose whether you want stuff 0-indexed or 1-indexed I guess
 
@EriktheOutgolfer Some of them are not variables though: All system names
@EriktheOutgolfer Yes, exactly.
@EriktheOutgolfer Actually, ⎕ML←0 has one function the others do not have, but it is rarely used, and instead it is missing a very handy and frequently used one.
 
yeah "type"
but I guess I won't need it at all heh
 
@EriktheOutgolfer Right, now you have the docs… Dyalog APL is fortunately fully documented and has loads and loads of examples.
Need an algorithm? Check out dfns.dyalog.com
 
2:33 PM
how do I import again?
 
@EriktheOutgolfer Import what?
 
from the dfns
 
@EriktheOutgolfer If in the Session (TIO's Input) just )copy dfns pco (where pco is the name or names of what you want).
 
is there any shorter way?
 
@EriktheOutgolfer If you want it in code, you need to use the ⎕CY system function.
You can save bytes by copying the entire dfns workspace instead of choosing what you want.
 
2:37 PM
this doesn't work
 
@EriktheOutgolfer Try it online!
 
is that how you choose anyways?
 
@EriktheOutgolfer Yes, but there is no "br" and dfns (functions in braces) terminate on first non-assignment.
 
sorry I meant "bf"
still doesn't work
 
@EriktheOutgolfer It does, but you never reach the computation line because the function terminates after copying.
 
2:44 PM
wait this doesn't work
but anyways I need a dfn
 
@EriktheOutgolfer Because is a special symbol only for dfns (and dops). You must use a proper identifier on tradfns (the ∇ delimited functions)
@EriktheOutgolfer Do you really need to copy stuff from dfns for the codegolf.co.uk holes?
 
no, but I was generally asking
apparently you can't do that in codegolf.co.uk because dfn >_>_<_<
 
@EriktheOutgolfer No. The idea there is that you write your own code :-)
 
yeah you shouldn't cheat ;p
also I don't quite get the first hole
 
@EriktheOutgolfer Here are two ways to copy into a dfn (although I would never do that in real code).
 
2:50 PM
well, probably exec or eval code I guess?
 
in the first hole, should the last bin be [90-100] instead of [90-100)?
(read you're the author that's why I ask)
 
@EriktheOutgolfer Yes, that is correct.
 
hmmm
that means a bit of special casing :p
 
@EriktheOutgolfer Hint: The reason for that is that APL comes with a built-in which does exactly that.
 
2:53 PM
I'll search for it in the cheat sheet
but something else is also unclear
 
@EriktheOutgolfer Yes?
 
"there are at least 2 numbers"
how should we handle such cases?
 
@EriktheOutgolfer Yes. You cannot place a single number in one of two categories. If you have two, they make the extremes.
@EriktheOutgolfer The example gives you such a case.
 
hmm...all test cases seem to have 10 or more numbers so I guess I won't need to handle <10 :p
 
@EriktheOutgolfer You do, but it shouldn't matter for your algorithm.
@Ven Going back to your code review request. What is it that you are having trouble with?
 
Ven
3:37 PM
@Adám well, it's wrong, but I can't seem to understand why :\
 
@Ven Can you maybe give me a cleaned up TIO link, with just the code you have in mind?
 
@Ven Better :-D
 
Ven
yeah it got out of hands :c
I try many different things at the same time
 
@Adám Hey Adam, could you give me some advice here? How would I be able to append a hyphen - to the end of a string? I'm trying to return 4 random values (like 4?F where F=[0,15]) and I'd like to append the hyphen to them.
 
3:42 PM
@J.Salle ,'-' ?
@J.Salle Like this?
 
@Adám yes! Thanks
 
@Ven Firstly, you are prepending 1…10 to the data: (⍳10),⍵ Doesn't look right to me. What are you trying to do here?
 
Ven
@Adám I'm trying to ensure there will be data points
but you're right that it doens't look correct: it probably should be multiplied by the step
 
@Ven Yeah, something like that. And also offset by minimum.
 
Ven
and the least should also be added
 
3:46 PM
@Ven Ninja'd. (Retroactively)
 
Ven
:D
Editing is cheating! ;)
I guess I shuld extract (¯1+⍳10)×.1×(1+⌈/-⌊/).
 
@Ven Why are you adding one: 1+
 
Ven
@Adám I... don't remember. :c
 
You need to find the 9 (!) cutoffs. each is one ninth the way from the minimum to the maximum.
 
Ven
I had it at 9... but I made it 10... mhhhhh.
 
3:51 PM
@Ven Well, 9 fence posts make 10 areas, and 10 bell ringings take 9 seconds (if 1 sec between them).
 
Ven
I'm trying to remember why I added ¯1+ to that iota
 
@Ven to get 0…9 instead of 1…10, but you can also just change ⎕IO.
 
Ven
oh right, thanks
 
@Adám okay, another one: I want to convert a bunch of integers to hexadecimal from decimal, using abcdef for [10, 15], how complicated is that? For context, I'm trying to solve this challenge. What I have so far is a←,'-'⋄⍕(8?16)a(4?16)a(4?16)a(4?16)a(12?16) and I need now to convert those numbers to hex and then collapse the spaces to form a string.
Just need some tips so I can try to solve it myself :p
 
4:12 PM
@Adám how do I remove (or turn into spaces) zeros in a matrix?
{⍵>0:⍵⋄' '}¨ costs too much
 
@Uriel ⍺⍠⍵ replaces with , I'm not sure if it's only for strings though
 
@J.Salle how do you use it?
 
@Uriel Still trying to figure that out myself, so I'm not entirely sure
 
@J.Salle Certainly not in Dyalog APL.
 
@Adám Then I'm confused >.> I read it in tryapl's primer
 
Ven
4:26 PM
@J.Salle No. It's what ⎕R does.
 
Ven
You just didn't pick up what actually does (as I didn't at first): sets an "option" for the operator.
 
@Ven aaaaaah I see
 
@Adám thanks. I'm starting to think @ was a good touch after all
 
@Uriel Oh it is excellent for golfing.
Or ' '@(≥∘6)⍳∘.+1+⍳ if you need a function (⎕IO←0)
 
4:32 PM
@Adám why doesn't that work in my case? 'a'@(=∘10)(8?16)
I get an invalid token exception
 
@J.Salle Because you're using TryAPL, which does not have @, yet.
 
@Adám oh, I see
 
@J.Salle Btw, interesting idea to make hexadecimals with @. Now I have to try that.
 
@Adám it kinda works hahahah
 
4:40 PM
@Adám yeah I'd never have thought of that (because I don't know most of these operators hahahahah). Can I steal that? >.>
 
@J.Salle Of course. Which ones don't you know? (I'll teach you!)
 
@Adám , and
 
@J.Salle ⎕A is just the constant uppercase Latin Alphabet.
f⍣k is an operator which applies the function f k times. If k is negative, the inverse of f is applied.
 
@Adám it's a bit more complicated actually codegolf.stackexchange.com/a/145693/65326
 
⍺⊥⍵ is a dyadic function which converts from base to decimal. But since we are applying its inverse, we convert from decimal to base .
 
4:44 PM
@Adám I think I will be able to train in about half an hour. I'll ping you when I can start, ok?
 
@Mr.Xcoder Great. Then I'll leave my computer for 20 min or so so I can get ready.
 
@Adám oooooh this one's great
 
5:00 PM
Try it online! @Adám sometimes the code works as intended, sometimes it borks. Any idea why?
if you run it multiple times you'll see what I'm talking about
 
@J.Salle I've run it about 30 times. No errors.
 
It's not an error per se, but sometimes it shows ones and zeroes over the actual hexadecimal numbers
I think it happens when there's a 0 in the hex number
 
@J.Salle Each row is a digit position in all the hex numbers. I think you misunderstood what ⍺?⍵ does.
Dyadic ⍺?⍵ selects numbers from ⍳⍵ without replacement.
 
just noticed I can use a matrix to get value by index tio.run/##SyzI0U2pTMzJT////…
ain't that beautiful
 
@Uriel Yes, you can index with any-dimensional arrays. But why the many ?s?
 
5:05 PM
@Adám maybe, but what I meant is that sometimes this happens instead of this
 
@Adám to lower the snowflakes ratio
less ? = more
 
@J.Salle Because at least one of the generated numbers was 16, and thus required two hex digits (i.e. two rows)
 
@Adám yeah I thought so too. I'll try to fix it
 
Ven
I'm getting lost in my train of thoug...APL.
 
@J.Salle Try inserting a line with ⎕IO←0 right at the top.
@Uriel Why not specify which ratio of stars you want? Try it online!
 
Ven
5:09 PM
my "steps" function, if the array starts at 0, will contain 0. That's bad. I think that -1 I applied on my ⍳9 was a huge mistake
 
@Adám it works now, is it because of 1-indexing instead of 0?
 
@J.Salle Yes. With ⎕IO←1, will make 1…16, not 0…15.
 
@Adám I see. Also all I need to do now is collapse the whitespace, any tips on how to do that?
 
@J.Salle APL inserts spaces to separate numbers and character (notice that there is no spacing between consecutive characters).
 
@Adám idk, adding/ removing ?s is just easier
 
5:12 PM
Using @ to convert to hex was just an experiment. Use H←⊃∘(⎕D,⎕A)¨16∘⊥⍣¯1 instead.
 
Okay, will do
 
@J.Salle Also ,'-' doesn't do what you think it does.
 
@Adám >.> it's kinda working though, it just adds a bunch of spaces
 
a becomes a variable: a 1-element list of characters.
 
I see
 
5:15 PM
@J.Salle What you need (I guess) is ⊣,'-',⊢
 
@Adám yup, works like a charm
So, if I substitute ⎕A for ⎕UCS 96+⍳26 in H←⊃∘(⎕D,⎕A)¨16∘⊥⍣¯1 do I get the lowercase alphabet instead of uppercase?
 
@J.Salle Looks kinda cute too, no?
 
@Adám it does, hahahahah
 
@J.Salle Yes, but 819⌶⎕A is shorter.
 
Yeah I should've guessed there was a shorter version hahahah thanks
 
5:18 PM
Welcome to everyone here for the APL learning session. We're just waiting for @Mr.Xcoder…
 
@Adám I am here now. ready!
 
@Mr.Xcoder Well, speak of the…
 
I was just pinging you lol
 
What shall we learn today? I assume you are all on different levels.
 
Whatever you find suited for all of us.
 
5:19 PM
How about an intro to APL's array model?
 
Sure.
 
Fine with me, I'm down for whatever
 
OK. So the array is APL's fundamental data type.
Arrays are collections of scalars (atomic data units). There are a few types of scalars: numbers, characters, and references (refs).
 
11 people in the APL room. must be some record
 
...maybe
btw is this the first lesson, came just in time
 
5:22 PM
references are to such things as namespaces (≈JSON objects), GUI objects (WinForms), HTML Renderers, classes, instances, etc. Let's not worry about all those now.
Characters are denoted by single quotes 'a' is a scalar letter a.
APL doesn't really have strings, just lists (vectors in APL lingo) of characters.
In order to write a literal vector (=list) you just write the items next to each other.
 
Separated by spaces?
 
@Mr.Xcoder Only if otherwise ambiguous.
So, 'H' 'e' 'y' will render as Hey
Fortunately, there is a shortcut. APL allows you to write 'Hey' and it means the same as 'H' 'e' 'y'.
So a list of numbers need no decorators whatsoever: 1 2 3
You can also nest items. 'Hey' 'you!' is a vector of two elements. Each element is itself a vector.
 
So it is like [['H', 'e', 'y'], ['y','o', 'u', '!']] in other languages?
 
@Mr.Xcoder For some languages probably. Many languages do not have scalar chars.
 
ok, I see
 
5:29 PM
E.g. in JSON that would imply an additional "layer" of nesting.
You can also mix data types: 'APL' 360 is a two-element vector. The first element is a three-element vector of chars, the second is a scalar number.
Btw, in APL a number is a number. APL converts between internal representations on the fly, so you never have to worry about such conversions. It even takes care of floating point imprecision for you!
 
Oh the latter is rather nice
 
'a'3 is a two element vector. No space needed here.
 
No space needed in 'APL'360 either, actually.
You can also use parentheses to delimit vectors: (1 2 3)(4 5)
APL handles infinite nesting and mixing of data types.
 
that's sweet
 
5:32 PM
@Everybody on board with APL vectors?
 
Yup
 
Yup
 
OK, let's up the level!
 
@Adám how does apl represent arrays containing arrays if an array is "a collection of scalars"?
 
@EriktheOutgolfer You mean internally?
 
5:33 PM
yup
 
@EriktheOutgolfer A simple array contains the data in plain form in memory. Any non-simple item is instead represented as a pointer to somewhere else in memory where that array is located. If that array isn't simple either, then it consists of pointers too. But that's all hidden from the user. It just works.
 
so it's using reference scalars
and another question
 
@EriktheOutgolfer References yes, scalars? Well, it doesn't really have a name when it is internal.
 
is there any concept of a "mutable array" in apl?
 
@EriktheOutgolfer Nope. You always (appear to) create a new array when modifying an array. However, internally, APL keeps a ref-count and points multiple names to the same memory location if possible.
However, all the "reference" types are mutable.
 
5:38 PM
so it's not pointing to variables where if you change a variable's value every other variable assigned to it would change too
 
The levels of nesting in APL lingo are called depth. A simple scalar has depth 0. A vector has depth 1. A vector of vectors has depth 2, etc. If the depth is uneven, then we report it as negative.
@EriktheOutgolfer Nope.
Oh, btw, negative numbers in APL are denoted by a high minus (like TI calculators).
 
You can also use exponential format, so a million is 1E6.
 
@Adám clarification request: negative as in -1, or as in -(max depth)?
 
@EriktheOutgolfer -(max depth)
 
5:40 PM
so, jelly's ŒḊ-like but negative, alright
 
¯0 and ¯1 cannot occur for obvious reasons.
(also, ¯0 isn't a thing in APL)
 
Fair enough
 
@Adám doesn't something like [[6], 1, 2] have depth -1?
oh wait that's -2 nvm
 
@EriktheOutgolfer Exactly.
 
Ok, understood
 
5:42 PM
@EriktheOutgolfer but in APL that'd be ((6) 1 2) right?
 
not sure
 
@J.Salle No, because (6) is just 6
 
@Adám How would one properly write [[6], 1, 2]?
 
was going to ask
 
I wonder why would that be necessary tbh
 
5:43 PM
Or a singleton list like [5]?
 
You can have 1-element vectors, but you have to "create" them rather than write them. The prefix function , (comma) takes an array and makes it into a list. So ,6 is a one-element list.
@Mr.Xcoder (,6)1 2
 
Ok.
 
Of course , doesn't do anything to 1 2 3 as it is already a list.
Now, don't get a chock! APL also has a concept of rank. The rank of an array is the number of dimensions in that array. A scalar has rank 0, a vector has rank 1.
However, we can also have a rank 2 array; a matrix, or table.
Note that rank ≠ depth.
So I can have a matrix where every element is a "string" (i.e. a vector). I can also have a vector of vectors of "strings".
Rank is always flush. Every row in a matrix must have the same number of columns. Every layer in a 3D block of data must have the same number of rows and columns.
 
ಠ_ಠ Out of 5 messages that appear on my starboard, 4 contain "APL"
 
sure, that's very weird, considering the room is about apl ;p
 
5:48 PM
@Mr.Xcoder Uh, you are in the APL chat room.
Ninja'd
 
Well we don't have "Jelly" on each starred message in JHT :p
 
I guess there's an operation that turns a matrix into a vector of vectors?
 
Each APL implementation has a different max number of dimensions. Dyalog allows 15D arrays. If that isn't enough for you, you may be doing something not quite right.
4
 
If that isn't enough for you, you may be doing something not quite right - 10/10
 
@JohnDvorak Yes there is. The monadic prefix function called split does that.
 
5:49 PM
If you need more than 4 dimensions you're probably doing something really confusing already
 
@Mr.Xcoder Well, there I've seen documentation for systems allowing 255 dimensions and J, which is a dialect of APL (and the mother of Jelly) allows for an unlimited (except by memory) number of dimensions.
 
The reality has 11 dimensions (and yes, it is confusing)
 
Well, I find it relatively easy to imagine very many dimensions:
 
@Adám you mean its inspiration; jelly has a father though, not a mother ;-)
 
Imagine a piece of paper with a grid of letters. So we have rows and columns.
 
5:52 PM
@EriktheOutgolfer You are making assumptions :P joke
 
also it's really python (what it's made of) that allows the many dimensions, jelly just uses that
 
Each paper is a page in a book.
Each book is numbered on its self.
The shelves are numbered.
There are multiple bookcases next to each other.
And there are several such corridors.
In rooms next to each other.
And the floor has multiple numbered corridors.
On each floor.
 
I think we got it...
 
Sounds like MDX, you can have something like 16 dimensions
 
I got carried away…
 
5:54 PM
Although I've never seen anyone use more than 3
 
...and this shows that if you're using that many dimensions you're already doing something very confusing
 
@EriktheOutgolfer Yeah, like keeping all the data about your data center in one array!
 
@Adám and you didn't even get to the floors inside buildings inside neighbourhoods inside cities
 
@J.Salle along the highway…
 
New record: 12 people in the APL chatroom
 
5:56 PM
Since APL is written in lines of code, we can't (yet – I'm working on that) write a matrix as is.
 
@J.Salle inside provinces inside countries inside the earth inside the solar system inside the galaxy inside the universe inside the world of parallel universes...
 
@EriktheOutgolfer You skipped a few steps there.
 
which, again, shows that you're doing something wrong with so many dimensions at once
 
Something that's wrong on so many levels
 
The infix function (Greek letter "rho" for reshape) takes a list of dimension lengths as left argument and any data as right argument. It returns a new array with the specified dimensions, filled with the data.
(If there is too much data, the tail just doesn't get used. If there is too little, it gets recycled from the beginning.)
So we can create a 3-row, 4-column table with 3 4⍴'abcdefghijkl'
 
5:59 PM
@Adám ...too little?
 
05:00 - 18:0018:00 - 22:00

« first day (266 days earlier)      last day (2387 days later) »