Remix.run Logo
Thinking in an array language (2022)(github.com)
35 points by tosh 6 hours ago | 7 comments
2pEXgD0fZ5cF 2 hours ago | parent | next [-]

Giving APL a quick glance I find the topic at least intriguing.

So if I understand this right K is one of the more popular/recommended APL-derivatives nowadays. K is proprietary but there are a bunch of compatible implementations which are themselves open source. Is that correct?

Which APL derivatives (with an active/healthy userbase) besides k would you recommend to take a closer look at?

loganmhb an hour ago | parent | next [-]

I’m an array language novice but my favorite one so far is BQN. Much better documented than K derivatives. Not sure you could characterize any array language as having a “healthy userbase” though.

Jtsummers an hour ago | parent | prev [-]

https://www.jsoftware.com/ - J has a pretty active community, or at least used to.

tomhow 4 hours ago | parent | prev | next [-]

Previously:

Thinking in an array language (2022) - https://news.ycombinator.com/item?id=38981639 - Jan 2024 (152 comments)

Thinking in an array language - https://news.ycombinator.com/item?id=31377262 - May 2022 (66 comments)

IshKebab 3 hours ago | parent | prev [-]

I still haven't used K/Q/etc. because they look insane, but the more I read about them the more it seems like they are basically the maths equivalent of regexes. Super terse and powerful. Pretty much write-only. Very useful for interactive use, definitely. But if you find yourself hitting "save" on a regex that's a red flag and if most of your program relies on regexes something has gone very wrong.

redrobein 2 hours ago | parent | next [-]

They are far from regexes. I feel like you're equating something you don't understand to something else you find difficult. It's a language like any other. Infact it's far less verbose and shorter to read. If you've spent enough time with an arraylang you start to recognize "words" or sequences of glyphs as some complex function[1].

You might have a better time trying something like Uiua[2] or BQN.

[1] https://aplcart.info/

[2] https://www.uiua.org/tour

casey2 2 hours ago | parent | prev [-]

The bigger problem is that you often end up using more functions, worse algorithms or higher algorithmic complexity, creating your data structure at runtime, since the only datatype you have are arrays.

It's similar to the problem with unix/plan9, lisp or smalltalk. There is it turns out, too much of a good thing.

Such systems are great for learning, but I would make the mistake of building software on them