« first day (1126 days earlier)      last day (1518 days later) » 

1:51 AM
It was fun to write an ambiguous grammar parser from scratch, though it took almost a full day to golf it (from ~1500 bytes to ~300).
 
2:03 AM
And that makes another 400.
 
2:16 AM
#tio do j echo 16b1f
 
@Jonah 31
 
Is there a builtin way to go the other way: from 31 to 16b1f or just 1f?
 
#tio do j echo hfd 31
 
@Bubbler 1f
 
@Jonah The stdlib function hfd (hex from decimal) does the job. There's also dfh doing the inverse:
#tio do j echo dfh '1f'
 
2:21 AM
@Bubbler 31
 
 
1 hour later…
3:25 AM
@Bubbler ty!
 
3:56 AM
@Bubbler Do you happen to know where I can find a list of all (non built in, but included) stdlib lib verbs in one place?
 
4:15 AM
@Jonah It's on Jsoftware help, not the wiki. Most of the useful functions are in stdlib.ijs.
 
4:42 AM
@Bubbler Thanks, I'd seen that some point and then forgotten about it. Very useful.
@Bubbler What are your feelings on J vs APL?
 
4:55 AM
@Jonah I like both, but I tend to incline towards APL these days (except when I need a certain built-in function only in J). Don't ask me why.
 
:) Did you learn both just for fun?
 
Yes, at first APL, then J, then back to APL.
 
 
4 hours later…
9:12 AM
@Bubbler @Jonah It is actually on the wiki: code.jsoftware.com/wiki/Standard Library/stdlib
 
 
4 hours later…
12:58 PM
@Adám thanks. It's funny, while the core builtin verbs seem painstakingly thought-out and to fit together perfectly like a tangram, the stdlib ones seem a bit haphazard. I suppose the bar was lower there...
 
1:54 PM
@Jonah Maybe because the built-ins were 4rd generation APL (Iverson notation, simple APL, boxed APL, J) while it was the first time they made a stdlib? Tellingly, no APL has a stdlib yet — though we're working on that…
 
 
2 hours later…
3:29 PM
I stumbled onto APL via a short stint trying to learn k/q - I thought I'd find the glyphs harder to decipher but (for me) I've found the opposite to be true.
Is the glyph set fixed, or as Dyalog versions are released, new ones are added?
 
@xpqz there's a limited amount of APL-y glyphs in unicode, but that set hasn't been exhausted
 
@xpqz We're adding one more glyph this summer, so no, it isn't fixed, though I very much doubt we'll ever add non-Unicode glyphs.
 
3:50 PM
@Adám - is there an ANSI, ISO, or IEEE standard for APL?
 
@Adám - I assume that Dyalog fully implements the standard?
 
@JeffZeitlin Pretty much.
 
/me looks at the ANSI webstore and whistles at the price being asked for a PDF copy of the standard...
 
4:22 PM
@JeffZeitlin Why would you even want a copy? There's really nothing interesting there. It is basically a strangely stilted reformulation of IBM's documentation.
 
4:37 PM
@JeffZeitlin I've added a Standards page to the APL Wiki. Please, if there's information about APL that you want, but can't find on that wiki, let me know (or put it there yourself).
 
 
2 hours later…
6:12 PM
@Adám - Generally speaking, I assume that the Standard describes an "ideal" implementation's behavior; I don't assume than any particular implementation conforms in every respect to the standard. If the standard is based on someone's implementation as a "reference implementation", I'm perfectly happy to have complete documentation for the reference implemenation instead.
 
Is IBM's APL still a thing? Disclosure: I work for IBM. Looking through the internal docs, it seems a bit neglected.
 
@JeffZeitlin Well, there you go. The APL Wiki APL2 page links to the complete docs.
 
@Adám (Frankly, given the work that Dyalog has put into their documentation, I wouldn't be unhappy about the idea of considering Dyalog to be a "reference implementation". Especially since both the 'terp and the docs can be had for only the cost in time and bandwidth that it takes to download.)
 
@xpqz It is. The websites for it look way slicker than any other APL vendors too. However, I have understood that APL2 users are murmuring about IBM's not adding any modern features. They are increasingly seeking to migrate to Dyalog. Mainframes are also significantly more expensive to maintain than PCs…
@Lulucmy Hi there. Interested in APL?
@xpqz Btw, my father worked for IBM too, a long time ago.
 
I got acquired :)
 
6:20 PM
@JeffZeitlin I think Dyalog is becoming the new standard. While APL2 still looked strong, Dyalog advocated ⎕ML←3, but now the scales have tipped; we recommend ⎕ML←1 and most implementations follow Dyalog rather than IBM.
@xpqz Meaning IBM bought your company up?
 
Not "my" company as such, but where I worked. Still work.
 
My father wanted experience in job-seeking, so he applied for a job he definitely wouldn't want. They tested the applicants, then did a second tier test of the highest scoring ones, and then asked my father How much do you want? He stated some ridiculous amount, like 3 times the salary a newly graduated civil engineer (MSc) would expect. They then asked When can you begin? Monday?
 
OK, APL-eusis has been created; I'd appreciate commentary and/or edits-to-improve.
@Adám - I will admit to liking one capability in NARS2000 that's not (yet) in Dyalog - rationals, entered using "r" notation (e.g., 2r3 for two-thirds).
 
6:38 PM
@JeffZeitlin Why the dash in APL-eusis when the final L of APL combines with the L of Eleusis to make the perfectly sensible portmanteau APLeusis?
@JeffZeitlin Right. The dfns workspace provides the rats operator, but it isn't very convenient. One problem is that the introduction on rationals breaks that convention that "a number is a number".
 
@Adám - I was thinking that separating it out emphasized that the pronunciation is "ay pee ell yousis" rather than "app-lyousis". I'm not fanatic about the dash, however.
@Adám - I'm not sure I understand what you're implying in the sense of 2r3 rationals breaking "a number is a number". Doesn't the same idea apply to complex numbers using the j notation?
@Adám - Of course, there's also the question of using r notation and j notation together - is 3r2j1 interpreted as three over (two plus i), or as (three over two) plus i?
 
@JeffZeitlin No. 1j0 is exactly the same value as 1 (and 1.0). The introduction of 1r1 would not be the same value.
 
6:57 PM
@Adám - OK, I think I begin to see what you're getting at; a better example would be that 2r3 is not the same value as 2÷3, and that also leads to the question of type mixing - should 1.5+(3r2) give the result 3r1, 3, or 3.0?
 
@JeffZeitlin Exactly, and then throw 2j3 into the mix!
 
@Adám - which gets back to the question of "complex rationals" - does r bind more tightly than j, or is binding strictly right-to-left, or j more tightly than r, or ...?
(My inclination would be to make r bind more tightly than j - that is, 3r2j1 is three-halves plus i, not three over (two plus i).)
 
7:50 PM
@JeffZeitlin Yes, the more "letters" we allow, the longer will the list of "letter precedence rules" be. We already have j and e where j binds stronger than e. One of the nice aspects of APL is exactly its lack of precedence rules!
 
Hi @Adám
Why not, si there any specific language I should write in ?
 
@Lulucmy Do you do programming?
 
Yes, I know Haskell & Python
 
@Lulucmy Ah, cool, so you're both into functional programming and interpreted programming. Does it ever bother you that those two use keywords in English and not, e.g. in French?
 
To learn Python yes, sometimes it's challenging
But Haskell has less "English" keywords
@Adám and you what language do you program in?
 
8:05 PM
@Lulucmy APL. It has no English (or any other language) keywords in the core language!
 
I just looked it up on Wikipedia, it seems hard.
 
@Lulucmy Not at all. It seems very different at first, but when you let go of preconception, and just dive in, it is one of the easiest programming languages to get started with. Especially if you know a little basic mathematics.
@JeffZeitlin At what point does it become too much? J has a few such letters, making constants like 1b2b3e4b5b6j7b8b9e10b11b12e13b14b15j16b17b18e19b20b21r22b23b24e25b26b27j28b29b30j31b32b33e34b35b36 perfectly valid.
@Lulucmy How are you with mathematics?
@JeffZeitlin I think it needs to code address restrictions even more. E.g. which constants are allowed in the code.
 
@Adám - Oh, ICK! No language should allow constants to be written like that.
Although I think some of that is an artifact of J using standard ASCII for things that APL uses symbols for. J's p-notation would be APL's (monadic) ○, for example, and I think J's x is APL's (monadic) *.
 
8:24 PM
@JeffZeitlin Actually, I was mistaken. The first b makes this "base notation", so it is equivalent to:
⎕←1⊥(⎕D,819⌶⎕A)⍳'2b3e4b5b6j7b8b9e10b11b12e13b14b15j16b17b18e19b20b21r22b23b24e25b26b27j28b29b30j31b32b33e34b35b36' ⊣ ⎕IO←0
 
@Adám
646
 
/me thinks allowing multiple 'base notation' indications in a single constant starts out obscene and degrades from there.
 
@JeffZeitlin Well, 1e2r3e4j5e6r7e8x9e10r11e12j13e14r15e16b17 is valid though, and not just base notation. Try it online!
@JeffZeitlin I disagree. J has o. for and ^ for *. There is a value in being able to write 2e3 instead of 2×10*3 etc. Rather the other way around. J has j. which allows combing a real and an imaginary part. APL only has the j constant notation with no sleek way to combine parts.
 
@Adám - I was just thinking about that problem in APL, and also about being able to use polar notation for complex numbers.
 
8:41 PM
@JeffZeitlin Both are rather useful, and in fact, APL2 allows input with polar notation in both degrees 2D3 and radians 2R3.
 
@Adám I'd say average level
 
@Lulucmy Can you guess what 2×3 and 2÷3 mean in APL?
 
The only thing I could come up with was to write a function J where ⍺ J ⍵ simply returns ⍺ + 0J1 × ⍵, and ⍺ R ⍵ (which I was starting out calling 'cisr') returns ⍺ × 2○⍵ J 1○⍵
 
Simple divisions and multiplications @Adám ?
 
Requiring the space for R and D, however, is unesthetic.
 
8:45 PM
@JeffZeitlin And very awkward in a vector of values.
 
@Adám - Indeed
 
@Lulucmy Indeed. APL may look foreign at first, but in fact, it strives to use mnemonic, universally understood symbols instead of being bound by ASCII and English words.
@Lulucmy So, now that / is free for something else. APL uses it to reduce a list. If we have a variable myNums then +/myNums is the sum of those numbers. Can you then guess what ×/myNums means?
 
Divide each number by X ?
 
@Lulucmy It is a multiplication sign, not a letter x.
 
Oh ok, must take time to learn all these symbols
 
8:52 PM
@Adám - I'll probably end up sticking CISR, CISD, and J (functions) into a "stdlib" workspace, and just )COPY it into workspaces as needed. Until (if) Dyalog builds them in...
 
Do you use it at work @Adám ?
 
@Lulucmy I do.
@Lulucmy Just like it takes time to learn all the keywords and ASCII symbol-sequences in other languages. Just like it takes time to learn human languages :-) But what you'll find is that APL actually has quite a limited vocabulary, and instead you combine symbols for simple concepts into compound meanings.
So, e.g. while other languages might have + and * for plus and times, and also sum() and product(). APL has + and × (which should be easier to learn than *, no?) and just / for reduction. Summation is +/ while finding the product is ×/.
 
@JeffZeitlin ← +-×÷*⍟⌹○!? |⌈⌊⊥⊤⊣⊢ =≠≤<>≥≡≢ ∨∧⍲⍱ ↑↓⊂⊃⊆⌷⍋⍒ ⍳⍸∊⍷∪∩~ /\⌿⍀ ,⍪⍴⌽⊖⍉ ¨⍨⍣.∘⍤@ ⍞⎕⍠⌸⌺⌶⍎⍕ ⋄⍝→⍵⍺∇& ¯⍬∆⍙Install…
 
It's easier, but it must take longer to learn than other languages.
 
8:57 PM
@Lulucmy I'm willing to bet on the opposite. Shall we try it?
I think you can learn 90% of the core language in 24 hours.
 
Honestly, I've never heard of it before, is there a big community?
 
Oh, and what Jeff just caused the bot to display, that's actually all the symbols.
 
@Lulucmy - I think you'll find that a lot of APL's basic symbols can be associated mnemonically with their functions - for example, ⌈ is both maximum of its two arguments, or round-up (ceiling) its single argument.
 
Oh ok
I'll try to find some documentations in french
 
@Lulucmy Nothing like popular languages, but what it doesn't have in quantity, it has in quality and time. APL is very old and its adherents are almost like a big family.
 
9:00 PM
... and on that thought, I'm going to "turn into a pumpkin" and head home - errands to do.
 
Wow, last version is 2001
That's pretty old
 
@Lulucmy Last version of what?
 
APL (according to Wikipedia)
 
@Lulucmy These people might have something in French. I know there are a few books on APL in French.
@Lulucmy No, that is the ISO standard for APL. Implementations have new versions every year.
 
Oh ok
I found a book on APL, see you in 24 hours ;)
 
9:07 PM
@Lulucmy Here is one.
 
Thanks I'll try it
 
@Lulucmy While I don't know the previous one I linked to, I do know the author of this one which you might be able to get at your library.
 
Doesn't seem available anymore...
I found this one (translated in french)
 
@Lulucmy You found the original in French? Where?
 
9:22 PM
@Lulucmy OK, perfect. That is likely the best possible intro you could get. Go for it!
 
Great I'll look into it tomorrow, I have to go
Thanks for your tips !
 
Always! Enjoy.
 

« first day (1126 days earlier)      last day (1518 days later) »