@Downgoat APL doesn't even have a name :) They called it "A Programming Language" after the title of a book by its creator. As I have no graphic design skills but wanted some sort of memorable image in the readme, for a while I used the ASCII rendition (using figlet) of "⍎" (the APL glyph for "execute"), but then removed even that. I also considered this though I never published it:
@EriktheOutgolfer judging by the brightness of the three sides of the cube, the light source must be above the cube (top side is brightest) and a little to the left (left side is brighter than right)
@EriktheOutgolfer so, if it's a shadow, it should be below the D and a little to the right. You may be right, the dark regiouns could be a cut in the cube :)
@ngn I think I'm with EtO; those brown things are just underscores hanging in the same plane as the D. All three plates are suspended well in front of the cube.
@EriktheOutgolfer Yeah, well serving the purpose of underscores by trailing the edge of text in one direction, without actually touching the text — for emphasis.
@Uriel a bit like it yes, except that at AoC inputs are personalised and there are two phases to solving each problem - the second one appears after you solve the first; it starts tomorrow
@EriktheOutgolfer it's determinalistically pseudorandom - it remains the same for the same user; I used some of last year's AoC problems as tests for my private k implementation
@Adám
Command Aliases:
⍞← -> #TIO do apl-dyalog ⎕←%args%
⎕← -> #TIO run apl-dyalog (⎕NS⍬).⍎'⎕CY''salt''⋄⎕SE.UCMD''box on -fns=on''⊣enableSALT'⋄⎕←%args%
Language Aliases:
apl-dyalog -> [apl]
Message Aliases:
)help -> %handle% [Dyalog APL Language Elements](help.dyalog.com/16.0/Content/Language/Introduction/…)
)ref -> %handle% [Dyalog APL Reference Card](docs.dyalog.com/16.0/ReferenceCard.pdf)
)about -> %handle% You can evaluate an APL expression by typing it into chat prefixed by ⍞←. Use ⎕← instead for boxed display and multi-line results. Do not use mar…
@Ven It is ready to go, but for some reason only works on a Windows server, and it is supposed to run on a Linux server. This issue it is being actively worked on as we speak. (I just spoke with the one who is working on it, 15 mins ago.)
@Ven We are also working on a complete overhaul, but that will have to wait. For now, you'll get ⊆ ⍸ ⌺ @ ⍎ ⎕JSON, various extensions, and fewer crashes.
@Pavel Nah, it almost fits in the dark blue area below the input box.
@ngn True.
@ngn True.
@ngn Something else: Some keyboards do not have backtick at all, e.g. Italian. Would it be possible to have an input field next to the close button where one can enter the desired prefix char?
@ngn Btw, TIO could benefit from this by storing the special symbols for each non-ASCII language and then displaying a custom language bar when that language is selected.
@ngn I mean drink alcohol and eat chocolate. Am I right?
@Adám another way to solve configuration issues is to have a page where people can fill in a form with the settings and generate a bookmarklet that has those in the url
@ngn For some reason the spaces I inserted ceased to show. Any idea why? They do come back if I add whitespace:pre-wrap, but it still wraps between characters instead of between words.
@ngn How? I tried removing word-wrap:break-word but that doesn't do anything, and anyway, it should only cause in-word wrapping when a word doesn't fit on a line.
I'm sorry if this isn't the right place to ask this question, but does anyone know if an English translation of Datenstrukturen in APL2 (springer.com/in/book/9783540557470) exists? The only alternative I can think of is purchasing the German version & running every page through a translation engine. Unless there's a better place to read up on data structures in APL
@masaldaan Absolutely the right place. Datenstrukturen means data structures, but I assume they mean arrays. Try Chapter B of the free book Mastering Dyalog APL and maybe have a read through my Introduction to Arrays in APL. I'll be happy to answer any questions you post here too.
@EriktheOutgolfer Oh, yes, it was you who came up with the excellent name and started the trend of naming the lessons. Thank you. (Since I was teaching, it was still my lesson, no?)
@Adám I'm completely ignorant when it comes to German, but google translate seems to convert the TOC fine. It has chapters like Stack and queues, trees & graphs. Plus a chapter on Classic algorithms and their suitability for APL2, that looked interesting. In any case, I'm not really there yet. I was wondering if it would be a good 2nd book to study. Thank you for the other suggestions, I will read them first.
@EriktheOutgolfer Yeah, I find that very silly. If the last statement is an assignment, the function should be shy no matter how many lines/statements it has.
@EriktheOutgolfer I vote for monadic ← being shy. Assignment is already shy, you just remove the name on the left to get that effect without assigning.
@EriktheOutgolfer No, shyness was always in APL (although not in user defined functions). However, shyness is nasty. IMHO, all statements under program control should have been shy.
@Adám actually shyness can sometimes be useful, for example a function intended to modify some variables shouldn't have to return anything, it's not the return value that we use it for
@EriktheOutgolfer Exactly. Shyness should have been a "system" thing, not a per-function thing. If you wanted output (as opposed to returning a result), you should have to be explicit about it (⎕←). And if you wanted shyness in the session for some reason, you should be able to silence statements with {} or monadic ← or maybe monadic ⊣.
@EriktheOutgolfer As it is now, it can happen that while a large program runs, spurious output appears in the session, and you'll have a hard time tracking down what caused it (although we now provide a tool that can tell you) because you can't just go search for ⎕←.
@EriktheOutgolfer Yeah, but watch it get really ugly: Insert a newline before } and the function will appear to still be shy, but now you can't coerce the result any more!
@EriktheOutgolfer No, 1:s← is still an assignment. It is the 1: which marks that the function ends here, and thus never continues to the next and empty line. Trailing empty lines do not have a value.
@EriktheOutgolfer It does what it can (add margin to body) but there is no way (we know of) to universally move even absolute'ly position'ed items down (other than going through them all, all the time).
@EriktheOutgolfer Yeah. We considered (you can see our discussion in the transcript) adding both a minimise button (which hides) and a close button (which stops everything) but would rather keep it simple.
@EriktheOutgolfer Nick also suggested leaving a one pixel line as indicator for backtick mode being in effect.
@EriktheOutgolfer You're welcome to submit pull requests if you want to have a go at a minimise button and/or 1-pixel line. Just beware that the code is golfed Nick-style.
@Zacharý You can evaluate an APL expression by typing it into chat prefixed by ⍞←. Use ⎕← instead for boxed display and multi-line results. Do not use markdown. Commands: )lb for language bar, )help for table of language elements, )docs for full documentation, )ref for PDF reference card.
@Adám @EriktheOutgolfer regarding "shyness", python has a similar behaviour where in REPL assignments evaluation returns None and therefore prints nothing. Makes sense, considering that although you did create a variable, the return value is that of the operation and not the operands.
I think Scala and Julia follow the same path, and IIRC clojure REPL actually print the representation of the created function (usually comes as it's name and some weird numbers)
@Uriel I think all agree that assignments shouldn't cause stuff to be printed. The question is non-REPL non-assignments should have implicit printing or not.