« first day (1414 days earlier)      last day (1245 days later) » 

3:35 AM
@dzaima mind if I add the snake game as an example to APLP5?
 
 
2 hours later…
 
1 hour later…
6:56 AM
@Adám and then combine it with youtube.com/watch?v=TnQ0KddieV4 to have snow and rain over the buildings hahaha.
 
ngn
@Razetime your part2 seems to involve manual work
 
7:38 AM
@Adám Hi Adam, yeah! I'm really interested in learning APL. I've been watching videos about it practically none stop for days.
 
@ngn Just need to move (⌊/+⌈/) up 2 lines
@ngn now it should be better
 
ngn
@Razetime it is, but 177777905 is still hard-coded
 
ah yep
 
ngn
should be easy to fix
 
ok, fixed that as well
 
ngn
7:50 AM
in aoc different people get different inputs
 
yep, makes sense
 
 
2 hours later…
9:47 AM
@Razetime probably (though first i'd want to test it out myself :p)
@Razetime if, while going down, you tap left & up quickly enough, you'll start going up without ever moving sideways
 
10:05 AM
Oh cool me and ngn did a similar thing for part 2
 
ngn
@rak1507 nice :) interesting approach to part1
 
Thanks, pretty inefficient I'm sure but it was the first idea I had
I could use the Day 1 approach for it, that is probably better
 
ngn
@rak1507 you don't ignore duplicates in part1?
 
No, I am lazy
 
ngn
lucky it worked. it works with my input too.
 
10:14 AM
Yeah
 
ngn
@rak1507 ∊, could be just ∊
 
True
 
ngn
in part2 you don't allow the first element from the input to be part of the range. again, luckily it worked :)
i mean +\data should have been 0,+\data
 
Ah yeah true
 
@Adám ⍵>⍳¨⍵ is a pretty weird way to do ⍵⍴¨1
 
10:20 AM
@dzaima Yes, and ⍵⍴¨1 is an odd way to do ⍵/1 :-)
 
I think I'll do ⊢p1←data⊃⍨25+⍸{~(⊃⍵)∊∘.+⍨1↓⍵}¨¯26,/data
 
@Adám those are different though
 
@Saif Cool. Let me know if you need any help and by all means, ask any questions you want. You know about APL Wiki's learning resources, right?
 
@ngn somehow when I do 0,+\data it fails
 
ngn
@rak1507 huh.. right, here too
 
10:23 AM
@Wezl alternative map definitions: {⍵∘.>⍳⌈/⍵} {↑⍵⍴¨1}
 
ngn
@rak1507 oh, the indices become off by one this way
 
Ah yeah
Oh well I'll just leave it as is even though it's technically wrong
I fully expected more asm type stuff, glad it wasn't
 
ngn
i bet there will be more later
 
Probably :(
 
ngn
e↓s↑a - i think this is wrong even in your original code
 
10:29 AM
Isn't that exactly what you do?
 
ngn
@rak1507 i use ⎕io←0, but i could be wrong for other reasons
so, in your code e=start and s=end :)
 
You use 0,+\ which means with ⎕IO←0 that works
Oh yeah that's true haha oops
 
10:49 AM
Sometimes using APL feels like cheating.
 
Haha
Nice, your part 1 is very fast
 
I was pondering whether to bother doing it like I did or just brute it.
 
Bruteforce is definitely easier but I think your solution is nicer
 
@dzaima interesting
I'm not sure how that can be fixed
 
@Razetime by moving the direction checking code inside draw, not in the separate function. or something like that
 
11:03 AM
@dzaima adding the keypress checks inside draw caused some weird glitches earlier
 
@Razetime oh, huh.
 
@rak1507 Looking at your voodoo e s←⊃⍸p1=∘.-⍨+\data .....
 
@dzaima I'll try it out anyway
 
I can see what it does, but I can't say why that works :/
 
The sum of a section is equal to the cumulative sum up to the end, minus the cumulative sum up to the start
 
11:12 AM
but of course it is.
 
ngn
@xpqz you walked the extra mile - optimization. nice. btw, instead of composition: A∘f⍣g⊢B you can give A directly as left arg: A f⍣g⊢B, and will make sure to pass it on to f.
 
ngn
11:35 AM
why does everyone use such long variable names and file names?
 
To annoy you
 
@ngn habit, I guess. Or a crutch to aid my own understanding of code I wrote, six months down the line.
 
ngn
@xpqz if the meaning of the variable is not obvious, one can put a comment on initialisation and still use a single-letter identifier
 
@ngn file names - they're used very rarely, so can be longer. And regardless, if adding .dyalog, the rest of the name won't be much of a problem since you'd autocomplete anyways, so clarity is a free bonus
 
ngn
@dzaima what about inputs? presumably they are in their own directory, grouped by year. why not "1", "2", .. instead of "aoc2020 day 1.txt", .. whatever?
i use "01", "02", .. for mine only because of sorting in ls
 
11:52 AM
@ngn what is 1? is it the program or the input? In an editor which doesn't show the full path of the file everywhere, how can i know which year is the file from (or even that it's AOC)? how about 2 years down the line when you've forgotten where you've placed the file and your first thought isn't to make a hierarchy of search terms?
 
ngn
@dzaima the program is usually *.dyalog or *.apl
i can't imagine not knowing which file in which dir i'm editing :)
 
@ngn once you have even .apl, autocompletion means a full name won't be much worse (and even without it, typing the extra couple characters those ~5 times won't really take any time)
 
I like calling them 'Day n.txt', as for the actual APL code, I don't save that in files, I just write the code in the repl and then store it on GH
 
@dzaima found it. Apparently was in ~/dws/old/AOC/codes.dyalog, along with all other solutions :|
@dzaima (inputs were in that same directory as [N].txt)
 
ngn
.txt could be useful on windows where file extensions matter a lot
@rak1507 but "Day " doesn't carry any meaningful information
 
12:02 PM
@ngn i'd really like it if linux sanely used extensions. Being able to know what's supposed to (and what will) interpret a file (or not interpret one) from the name is a pretty damn useful thing
 
ngn
@dzaima yeah, you're right in general
in practice i would drop the extensions only when i have a dir with many files of the same type
 
@ngn In my first year of participation, I hadn't already thought ahead and made a directory per year in a consistent location (which would have changed anyways throughout the years of multiple styles of file organization), in which case including the year is pretty useful. aoc means searching purely by filename can work, and then "day" serves as a separator between a year and an arbitrary number
@ngn and now you're left with a directory full of many files of unknown type. Sure, the context + looking in the files could easily be enough to figure that out, but now you're wasting time trying to remember what could've easily been written down
 
ngn
@dzaima that's unlikely to happen. the name of the directory usually gives enough information to guess what's in it.
 
@dzaima (e.g. when i looked in my AOC2018 directory, my first instinct was "why did i store my solutions with a .txt extension?" while those files were actually inputs)
@ngn see ^
 
ngn
@dzaima you asked yourself the right question :)
 
12:16 PM
@dzaima (afterwards i looked through a couple other [N].txt files to make sure they're all inputs, not that the one was an exception, wasting more time on a problem that could've easily been avoided by sanely naming things)
@ngn i specifically asked myself the wrong question :|
@ngn why not remove .c from ngn/k's source files?
 
ngn
if you're asking yourself a question you can't answer, the answer probably lies in the implicit assumptions you make, so question those too. --ngn the philosopher
@dzaima compilers complain
 
I liked being able to do (⍴a)↑1 1↓a←3 3⍴⍳9 to "shift" the contents of a matrix along the diagonal.
 
@ngn so design file names with the assumption you will have faulty implicit assumptions later on, instead of thinking future you is absolutely perfect and remembers context information with 100%-precision?
 
ngn
@xpqz 1⌽1⊖a could work too, as you're overwriting the last row&column anyway
 
Ah that's a good point
 
ngn
12:25 PM
@dzaima no, i meant the faulty assumption was ".txt files contain source"
 
@ngn past me was stupid and could have done things like that. Past you wasn't perfect too, you made ngn/apl (or something like that) :p
 
ngn
that's one of my comparatively minor sins :)
 
@dzaima (that file seems to have been mostly a dumping ground of copy-pasted functions, relying on some things in a dyalog workspace, so kind of makes sense for it being a single file. Nevertheless, these 2 years later it took me quite a while to realize I could've done that, and who knows what i'll think of my now-self 2 years later)
 
@dzaima i thought ngn/apl was fine
 
ngn
@Razetime it's in js. it's slow. there wasn't wasm and typed arrays when i started.
 
12:55 PM
interesting
 
1:21 PM
@Adám I didn't know, thanks for the tip! I'll definitely be coming back here to ask questions as learn more. Thanks again :D
 
@hot_penguin Hi. Interested in APL?
 
1:54 PM
@rak1507 @ngn tried your ideas using Python's itertools -- quite slick, I have to admit: gist.github.com/xpqz/2fcbc2d3f23d0995d7676a589b1681c2
 
ngn
@xpqz cool but python is too verbose for my taste :)
 
After solving a problem first in APL, and then in Python, the latter becomes much more compact.
 
ngn
@xpqz [int(n) for n in f.read().splitlines()] could be [int(n) for n in f] or even list(map(int,f))
a file object is iterable as if it's a collection of lines
 
ah yes
lazy copypasta from the day before....
 
ngn
@xpqz one-liner find() (i can't resist the urge to simplify..):
def find(data,idx,size):return data[idx]not in map(sum,combinations(data[idx-size:idx],2))
 
2:07 PM
:)
 
ngn
@xpqz why do you start the loop in part1 from win+1?
probably ⎕io confusion
 
One plus the 'preamble' -- so for the test example, start at 6, using the 5 values prior
 
ngn
@xpqz but index win=5 already has five prior values: those at 0,1,2,3,4
 
@dzaima file extensions in the unix world always felt like casual type hints than anything binding. you can use 'file' to guess the filetype based on the binary header. which program to use as a default when opening is up to the desktop environment. unix has historically segmented files by location vs filename. see man hier.
 
@ngn you can't be blamed for JS. It was a team effort. But what were they trying to create?
 
2:16 PM
@cannadayr yeah. Guessing is imo stupid (though arguably extensions also involve guessing), and segmentation by location breaks down when i want to organize things.
 
ngn
2:26 PM
@Wezl javascript was a team effort? legend has it, one guy wrote the first interpreter in a couple of weeks
 
@ngn I think it was ten days. But it expanded until it became the large mass it is today.
 
ngn
@Wezl a victim of its own success
 
@ngn Exactly, and to think that we might have scripted with scheme, instead
en.wikipedia.org/wiki/Brendan_Eich#Netscape_and_JavaScript "Eich originally joined intending to put Scheme "in the browser",[8] but his Netscape superiors insisted that the language's syntax resemble that of Java. As a result, Eich devised a language that had much of the functionality of Scheme, the object-orientation of Self, and the syntax of Java. He completed the first version in ten days"
 
ngn
@Wezl yeah, iirc the story, brendan eich wanted scheme, but java was the fashion, so they put "java" in the name and superficially changed the syntax to look like java
hah, exactly^^
 
But it's nowhere near scheme for functional programming, although in ES6 there's supposed to be tail call support
 
ngn
2:34 PM
@Wezl it's got the important things: first-class functions and closures
 
@dzaima yea, their reality of using magnetic spools probably had something to do with it. Ive seen HN articles about tag-based filesystems that might be interesting. i also have mved all my important filesystems to zfs. being able to archive and differential snapshot makes some of those problems go away for me. my directory hierarchy i try to keep everything in a single root and dont put projects under projects.
another option ill plug is to keep your text in a sqlite database and check it into git.
https://github.com/cannadayr/git-sqlite
i dont actively use ^ but its simple and should mostly "just-work"
 
3:11 PM
@dzaima Been working on moving my audio scripts from J to BQN, which makes a decent test case for how a BQN library (as opposed to application) would work. Sometimes it's taken some thought to figure out how to organize things but basically I think BQN does what I want even though it's not the use case the module system was designed for.
options.bqn stores "global" options that scripts use, and you can change them by loading the file yourself and modifying it. This depends on the fact that •Import with no left argument saves a copy. You can also pass in your own options object, although this is less than perfect because the internal scripts have to keep passing it around when they load each other.
There's also no way to do scoped options where you apply an option only within one scope: you'd have to set/restore.
Files that load these scripts will want to read/write in their own directory instead of the script directory, so I made •FBytes an option to allow rewriting it. But it would be better to have a function that just expands a path, so this wouldn't be tied to a particular format. Maybe •File? The default value should be a function that doesn't allow a relative path, perhaps •FileAbsolute. This should replace •path, since you can just write •File"".
I'm going to want trig functions soon, but I did learn about a pretty awesome approximation for sine from 0 to π.
 
3:39 PM
@Marshall requiring full paths for •FBytes/•FLines/•FChars is reasonable. How about •Rel for converting a relative path to an absolute one?
(fwiw i had written this for the basic taylor series sin)
 
@dzaima I don't think •Rel reads very will. I think I'd prefer the file functions to expand scopes since I definitely want •Import to do it, so file functions not allowing it would be a memory issue.
 
3:52 PM
@Marshall im going to be moving into math library type stuff when/if i get erlang/bqn figured out. a cpl things ill be thinking about is numerical correctness (implementation-specific) and imaginary numbers. i know youve thought in the past about how to implement them (like if they should be part of the base language or a library)
i found this library that i might test at some point
https://github.com/Vonmo/eapa
 
@cannadayr I'm still wondering about that: I think there should be a system-provided math module that gives you the standard libmath kind of stuff, but I don't know whether you should get it with •math or •Import "•Math" (or some other prefix).
 
i did some brief work on trig functions, but numbers seemed to be slightly... off
https://github.com/cannadayr/bqn-ws/blob/master/src/math.bqn#L43
could be the method i chose
 
@cannadayr seems to work fine for me
 
i think a stdlib can be a very good thing. don't know enough to provide help on import semantics.

other stuff i want to port over from my apl math stuff : gaussian distributions, tree traversal/graph algorithms, determinants, and some preliminary qr-algorithm stuff for finding eigenvalues+eigenvectors
 
@cannadayr I think Taylor series will tend to give you accumulated rounding errors. Most of the math libraries use precomputed and hard-coded Remez polynomials or similar. These are designed to have a certain minimum tolerance over the whole range, so they don't require as many terms.
 
4:03 PM
@Marshall that seemed to be my experience
 
@Marshall It's also worth considering removing syntax entirely and moving everything but primitives to system libraries. The difference for something like •Out is that you can't even in principle implement it without system support. But maybe an implementor would want to do it in terms of lower-level functionality in which case putting it in a library would make sense again.
So the implementation would provide some intrinsics that can only be used in the system libraries and don't follow any spec.
 
@Marshall the slight theoretical issue with •Import "•Math" being that •Math could be an actual file
@Marshall and then making a single-char replacement of •Import?
 
@dzaima I guess that would have to happen, yes. Which makes me like that strategy less (and I didn't like it that much to start with).
@dzaima It should be fine to have restrictions on the filenames you can use for storing BQN sources though.
 
@Marshall that makes sense, it just feels weird to arbitrarily restrict that while like everything else doesn't
 
@dzaima True. •Import needs some way to find system and installed libraries though (and I guess we'll need a $BQN_PATH). But any string you use could be a valid path on some OS, right?
Currently we do have the restriction that a filename has to be a BQN string, i.e. unicode. But Linux paths are just bytes so some files are never accessible to BQN. I don't really think that's a problem for a non-systems language—give your files reasonable names.
 
4:21 PM
@Marshall right (and linux only disallowing @ and '/' isn't a good start). C chose to just have 2 separate syntaxes for the two
 
J uses ~user, ~system, ~config, etc., but these are only expanded by standard library functions, and under the covers there are foreign functions that take raw paths. I'd rather not have two levels though.
•File/•Rel wouldn't know whether its input is going to a file function or •Import, so if those two behave differently it doesn't know whether a prefixed path is relative or absolute.
And escaping can't be allowed because it should be possible to expand a path multiple times—only the first should do anything.
 
@Marshall i don't think using •Import with anything other than a relative constant path really makes sense, so •File/•Rel could safely ignore whatever •Import goes with. (regardless, if there was a good name, i'd still prefer a separate -thing for user- and system-imports)
(maybe •Import for system/libraries and •Load or something for relative files? "import" seems a bit weird for files from the same project (though that is what nodejs does))
 
4:37 PM
@dzaima I'd prefer system and installed libraries to be as close in usage as possible. If someone makes a drop-in replacement for a system library that's better for certain applications then it should be as easy as possible to switch to it.
@dzaima My mental model on this is something like each file is its own country (has its own scope), so importing is the way it gets things from other files.
 
@Marshall I extend that to libraries & system libs being on other planets
@Marshall oh, i was of completely the opposite opinion - replacing a library should at least require editing something in each file importing it
@dzaima (but i was proposing separating only relative files, keeping external libraries & system ones with equal syntax anyways)
 
@dzaima Sure, but I say you should only have to change the name/prefix of what you're importing and not the function you use. If you think you're going to want to swap out a library used in many files, you can put the actual import in a local file and then import that.
@dzaima That makes it annoying to package a script plus its dependencies together though.
 
@Marshall that pretty much requires for a library to be nothing else than a folder copy-pasted to the directory relative to a the file importing it, making it not very much a library
(that's also a problem with there being no "base directory" - otherwise a node-modules equivalent would work)
 
is kind of a nice prefix character: •Import "⟜/math" or •Import "⟜user/newmath". Pretty unlikely to show up in filenames as well.
@dzaima I don't see the problem? As someone who frequently makes sort-of-libraries, I don't like it when there's a hard distinction.
 
4:55 PM
@Marshall so all non-system-libraries are just relative file access?
 
@dzaima No, you'd have a prefix indicating to search through $BQN_PATH.
 
@Marshall all i'm proposing is that instead of a prefix there's a separate -name
 
I guess there could also be a prefix that says to search up the directory tree until you find a folder with a package declaration file: it would have to have some defined standard name. That's fragile, and doesn't allow nesting, but it makes it easier to move files around within a package.
 
@Marshall that prefix (or, as in my proposal, separate -thing) could be the same as the one for system(-wide) libs
 
@dzaima But they're completely different locations? The one I just suggested would be for getting files from your own package.
 
5:08 PM
@Marshall ah, you meant as an alternative to relative paths. i was thinking more for libraries stored within the project (allowing completely free switching between a system-wide lib and project-only)
 
@dzaima Basically I just think it's weird to have multiple names for a function that does the exact same thing in different locations. If filename collisions are really a concern then I'd rather allow a ⟨source,file⟩ list like "system"‿"math" to resolve that.
 
@Marshall it's not even the filename collisions. for me the "in different locations" is significant enough for it to not be doing "the exact same thing". It's a completely different thing to import an external vs internal thing as far as i'm concerned
@dzaima (huh, AFAIC/AFAIAC is an ancronym)
 
5:48 PM
@absolutely-anyone is there an APL logo?
 
@Wezl unfortunately, no
 
or any unofficial one for e.g. a file type icon
 
ngn
only old ugly ones
 
there was a long discussion about it for TopAnswers (continuing every now and then in the following days). seems they just decided with the Dyalog one
 
New idea. Maybe someone can render this as a nice 3D collection of balls or cubes:
[[1 1 1
  1 0 1
  1 1 1
  1 0 1]

 [1 1 1
  1 0 1
  1 1 1
  1 0 0]

 [1 0 0
  1 0 0
  1 0 0
  1 1 1]]
 
5:56 PM
Looks like tetris.
 
good Idea. I was thinking of a 3-dimensional matrix of cubes, with some replaced by APL symbols
 
@Adám on it
 
6:20 PM
@dzaima Not bad. Did you try turning it so the planes are vertical, A being on the west-facing facade?
 
ngn
@Adám let's hope dzaima is facing north right now, so west is on his left :)
 
like this?
 
<phantomics> @Adám A while back I built a visualizer that renders a 3D matrix of integers as a minecraft-style voxel environment
<phantomics> 0 is empty space, other numbers are indexed materials; in practice, each integer responds to a block of a different solid color
 
@dzaima Yes, but make the boxes smaller (more spacing), and move the letters closer to each other, also move the eye a bit left.
 
@Adám attempt
 
6:34 PM
@dzaima Yes yes, but didn't the eye move a bit to the right? I think facing it should be the corner. And make the boxes even smaller.
 
@Adám i'm stupid, swapped left and right ಠ_ಠ (i did succeed at decoding "west" but failed to distinguish left from right..)
becomes quite unreadable (that's with not that much reduced size too)
 
Yes, and doesn't look much like a 3D array either :-/
 
@dzaima fwiw i myself quite liked the center/right
 
@dzaima Yes, I like the middle one too. What if you take that one and fill all empty slots with very faint (almost completely see-through) ghost blocks?
 
@Adám attempt
 
6:46 PM
@dzaima Separate the letters with all-0 layers.
(That'll make it a 5 3 4 array)
@dzaima Also, increase the lighting a bit.
 
@Adám all-0 or all-0.2?
 
@dzaima All 0.2
 
@dzaima My favorite so far. Now just make it a fractal.
 
looks like a mess (0.1 opacity even)
 
More serious suggestions are to light it more towards the fact of the A so the other letters get shadowed and to make the characters thinner in depth by using squashed cubes.
 
6:53 PM
@dzaima No, it just needs way more light. Maybe an additional light source on the far left.
 
@Marshall i intended to experiment with that exact lighting but didn't get around to it. Non-cubes feels a bit strange, but i can try
@Adám more light doesn't help the mess of intersections around L
 
@dzaima Maybe instead of ghost cubes, put micro-cubes in each centre point?
 
I guess the most APL-y color to use would be IBM blue? But probably it should just have three different (not too bright) colors. The grey on grey is definitely not good.
 
@Adám that
@dzaima (with weird lighting, eh)
 
I don't see trying to fill out the array going anywhere good. It's complicated enough to start with.
 
6:59 PM
I like it. But try giving each of the 5 layers its own colour.
@Marshall Yeah, it is too complex to be a logo, I'm afraid.
 
here's an illegible prototype:
 
@Marshall that
 
I feel like all of these are too confusing and can only be read if you know what you're looking for
 
@dzaima Maybe try lighting from exactly left of the characters or further back, so the facing-the-viewer face is darker than the left one?
 
7:10 PM
@Adám colors
 
the A and P could also be rounded
 
@Wezl kind of ruins the homogeneous 3D array idea
 
@dzaima Try A:cyan, P:magenta, L:yellow, and the empty layers grey.
 
@rak1507 that's what i liked about the cubes being close together - the letters themselves are quite readable. Color should also help a lot
 
Hmm I disagree I think the grey one was a lot more readable
 
7:13 PM
@rak1507 (well not the specific colored one, but colors in general. the gray in most was just the default)
 
ngn
bikeshedding
 
@Adám that (oh reversed colors)
@dzaima fixed
no fill (+ better lighting)
@ngn to this whole logo thing?
 
ngn
@dzaima yes
 
@ngn a logo has been talked about on multiple separate occasions. Of course it's relatively "useless", but it's fun to attempt to make one and i also get to ±learn a bit on designing such things
 
ngn
@dzaima ok, let me join the bikeshedding fun: what if we use the colours from ride's "goya" theme? :)
 
7:30 PM
@ngn there appear to be more than 3 colors to choose from in it
(gtg for a bit)
 
ngn
btw, i think this looks too beautiful for a logo. a logo should be simple, stylized, so it can be recognisable even when on a 16x16 px icon.
@dzaima ok, nvm
 
@ngn I definitely agree. I was actually, coincidentally, trying to make a 16x16 APL logo a bit ago
 
if ngn did graphic design imgur.com/a/L2Y6nU5
Ah how do I get it to embed
Posted it to imgur for nothing! :(
 
upload next to send
 
ngn
7:37 PM
@rak1507 that font is too sophisticated, i'd prefer adam's 4x3 bitmaps :)
 
Haha
 
ngn
in early ngn/apl i used as a logo a "⍎" passed through figlet
 
wait there are FIGfonts with apl characters?
 
ngn
i don't remember how i did it.. i could have rendered the letters "APL" through figlet and made the "⍎" by hand
"⍎" is my fav squiggle. i think "⍟" is a good one too, many people like it.
 
@ngn y'know, i completely forgot that was supposed to be a logo
 
7:43 PM
is my favorite and very squiggly.
 
ngn
@Marshall apl or bqn?
 
(fwiw this is what i locally use as the icon for my android app (chars are mostly random because that's an actual key on the keyboard))
 
@ngn From either one.
 
@ngn agreed
 
ngn
@dzaima looks occultist :)
actually most apl symbols do
sorry for interrupting the bikeshedding, do carry on
 
7:48 PM
@ngn well you did make the very valid critique that the 3D thing is entirely pointless as an actual usable logo
 
ngn
### ### #
# # # # #
### ### #
# # #   ###
^this is 4x11, it could fit in 16x16
 
a, p, and l all fit on 7-segment displays
 
8:08 PM
CLI RIDE cooking :D
 
≡⌈⌊⍴⍳∊⍸⎕⊂⊃⊣⊢=⊑⊒∪ and ∩ also fit
 
 
1 hour later…
9:31 PM
Wow, writing in haskell, hardcore
 
9:57 PM
@ngn That inspired me. How is this?
 
Confusing
 
10:07 PM
This could actually be a logo, and so what if at first it isn't obvious that it spells APL? It is still a matrix:
More balanced:
 
That's so cool
 
@MartinJaniczek OK, but I want to see the results too.
 
I have a version that tries to talk to Dyalog via RIDE protocol, but it's not talking back to my Execute commands yet
 
@Eggy Welcome back. It has been a while!
 
10:15 PM
Either I'm doing socket listening -- and user stdin listening at the same time -- wrong somehow, or there is something more to the RIDE protocol than I found in github.com/Dyalog/ride/blob/master/docs/protocol.md and the RIDE source itself
 
You know you can "listen in" on RIDE speaking with the interpreter?
 
@Adám I'm all ears. I didn't find any "show logs" in the UI itself, but maybe I should be looking into the console or run with some flag?
 
@MartinJaniczek Ctrl+F12
@MartinJaniczek Maybe missing \n after your expression?
 
@Adám That might be it. The RIDE protocol log shows it. I'll try it, thanks!
That indeed was it!
I'll have to go to bed but now the only thing missing is the prompt stuff (6 spaces / no space) and some cleaning up and this might actually be usable
for...beginner purposes :D I have no idea what the quad prompt types mentioned in the protocol docs are
 
@MartinJaniczek That's when APL is waiting for input to (evaluated input). There's also (basic text line input), and editor mode.
 
10:26 PM
@Adám I'll read up on that :)
 
@MartinJaniczek Cool stuff. I think you'll make a lot of people very happy if this goes well.
 

« first day (1414 days earlier)      last day (1245 days later) »