@Adám Make the vertical strokes narrower than the horizontal ones? I'm not much of a fan of pushing the letters close together like this regardless though.
The apple with ∇ is my favorite so far, although there are a few good ones.
@ngn For now - good point I'll see if it helps (although my naive coding was a one-line with ⍣ so not sure it would help enough) - I've now seen that I should have been using something like a dict structure, or someone else was putting the indices in their vector rather than the values or something like that
Yeah. If the red represent APL2, the blue APL2000, and the purple Dyalog, then the green can represent GNU APL and all the other free and hobby implementations.
@xpqz Q for implementors - is this just because all the type checking and branching required for figuring out which algorithm to do which transformations to? Can APL ever get comparable performance to python for scalar loopey things?
@dzaima oops. aes tests require a manual download. i'll add a friendlier error msg later. i pushed a tmp fix for now (just commented line3 in t/makefile)
@dzaima I'm getting ImplementationError: java.lang.ClassCastException: class APL.types.Num cannot be cast to class APL.types.Arr (APL.types.Num and APL.types.Arr are in unnamed module of loader 'app').
@dzaima Been working on tests for Undo (which is now hopefully supported as specified in self-hosted BQN!). So far I have tests for the primitives: the only one dzaima/BQN is missing is <. You can run those with test/dz_comp undo. It passes with the -rt flag indicating to use the full src/r.bqn runtime, but not otherwise.
@Marshall You can also run the tests in plain dzaima/BQN (default is the self-hosted compiler with dzaima+reference primitives) with test/dz_comp -nocomp. Most failures are missing primitive support but there's a namespace handling issue as well.
Thanks @Razetime, @ab5tract, @RikedyP, here's my take on the apple concept
I wanted the A P and L to be closer to the same size, so the A is thinner, and the P is truncated so that the L can go below it, the delineation between the letters is clearer
I ditched the grid design in favor of a granular shading technique with rectangles
It would take a better pixel artist than me to really do justice to the groovy 60s aesthetic of the letters, they could be shaded a lot better
@Wezl BQN's scan just goes left to right, in a single pass. < turns off its right argument if its left argument is 0, and otherwise returns it unchanged. So every 0 in the argument is unchanged, but if there's a group of 1s in the argument then the first one stays a 1 (there's a 0 to its left), the second turns to 0 from the carried 1, then the next stays 1 and we repeat.
The original problem is to find non-overlapping instances of 1 1, so we also have to check that the next value is a 1 and not a 0 or the end of the input, which is easy with a shift function.
Hi there folks! Can I use a string to access a child property of ⎕JSON-parsed object? Essentially foo.bar.baz works and I'm searching for a way to do foo.bar['baz'] so that I could get all the values of fields that I got via ⎕NL 2 into an array, if that makes sense.
it's very possible. So far I've extracted the field names, filtered ones I don't want and now I wanted to get the values of those good fields. I guess I can do it the other way too (get all key,value pairs and filter by bad keys, hopefully)
Ah, Dyalog help says the hydrant is dyadic too. I just didn't see mention of dyadic in the RIDE language bar help.
By the way do you think there's a better way to filter strings from a vector of strings than the APLcart "Without (~) on major cells for any rank"? Simple ~ didn't work even with dieresis etc. but I almost felt like I had a way to do it with = and or-ing those 1 0 0 0, 0 1 0 0, ... together
I'm on mobile but I'll have to revisit this when I get back to PC. Perhaps my problem was that I did it on a char matrix before figuring out I need to split it to a string vector.
Yeah, if you use a matrix, then you need the APLcart major-cell version. Note that ⎕NL 2 returns a matrix but ⎕NL ¯2 a vector of vectors (without the trailing spaces of ↓⎕NL 2)
@Wezl Just use ⍺⍺ for the left operand and ⍵⍵ for the right operand, and let the definition express the result of the derived function in terms of ⍺⍺ and ⍵⍵ (and ⍺ and ⍵). ∇ means ⍺⍺∇⍵⍵ and ∇∇ is just the operator itself.