Remix.run Logo
Saying Goodbye to one line of APL(homewithinnowhere.com)
63 points by tosh 3 days ago | 19 comments
harperlee 4 hours ago | parent | next [-]

APL was designed to be written on a chalkboard (if I remember the story right). It is quite dense, and programs are quite small. Reading is slow and requires you to ponder about what was written. You can hold a lot of content in a small amount of 'ink'.

Now, an idea: HN is always complaining that an ipad (or any other tablet) is a consumption device, as it is not designed to be used with keyboard/mouse. Do any of you know if there is an app where you can write APL with a stylus, and has the ability to evaluate expression on the fly, similar to a repl? That would be an awesome thing to do.

JaumeGreen 3 hours ago | parent | next [-]

I presented the same idea[0] and some people had already built something similar.

[0] https://news.ycombinator.com/threads?id=JaumeGreen#46718221

List of links:

[NKoP]: https://mlajtos.mu/posts/new-kind-of-paper [MathNotes]: https://mlajtos.mu/posts/new-kind-of-paper-5 [Fluent]: https://news.ycombinator.com/item?id=46649223 [Demo]: https://youtu.be/y5Tpp_y2TBk

https://mlajtos.mu/posts/new-kind-of-paper

buescher 2 hours ago | parent | prev | next [-]

On-screen tablet/phone keyboards seem perfect for apl to me.

There’s an iOS port of J but it’s no longer available on the App Store.

Syzygies 24 minutes ago | parent [-]

J is unclear on the concept, it's a hack to port APL to ASCII. I'm typing on a ZMK keyboard now where an APL unicode layer would be trivial. There are modern APLs. One can code a iOS keyboard with AI help.

While a native APL would be nice, the cloud solution would be robust access to a professional product. Build the chain via existing tools to bridge the iPad to APL running on a desktop machine.

I looked into this recently; but I've decided on Lean 4 as the successor "best language in existence" for my needs. Somehow of the many dozens of languages I've tried, it's the one that doesn't have an accent.

My recent language comparison: https://github.com/Syzygies/Compare

My APL one-liner story: https://news.ycombinator.com/item?id=27460887

stirfish 2 hours ago | parent | prev [-]

Here's a demonstration where APL is written on a typewriter thing: https://www.youtube.com/watch?v=_DTpQ4Kk2wA&t=208

NetMageSCW 3 hours ago | parent | prev | next [-]

My favorite APL one liner reduces spans of consecutive spaces in a string to one space by doing boolean algebra on the vector of which characters are spaces. APL provided me with a whole different perspective on vector style operation (it was my second language to be familiar with after Basic due to finding an APL introductory book at a discount shop). I find that way of thinking has been very helpful in developing with LINQ in C# and my personal library has many methods inspired by APL operators.

icen 3 hours ago | parent [-]

Do you remember what it was? This is how I would spell that in BQN, and you could write something very similar in APL (you don't have shift, so you'd have to write 1 drop 0 cat swap instead)

    ((«¬∘∧⊢)' '=⊢)⊸/
This works by building a boolean mask of spaces, and converting it to a mask of 'is a space, preceded by a space', negates that, and replicates out by that inverted mask (i.e. is not a space preceded by a space):

Here's stepping through it with some input.

       (' '=⊢)  "this  is a  sentence with       many   spaces"
    ⟨ 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 ⟩
       («' '=⊢)  "this  is a  sentence with       many   spaces"
    ⟨ 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 ⟩
       ((«∧⊢)' '=⊢)  "this  is a  sentence with       many   spaces"
    ⟨ 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 ⟩
       ((«¬∘∧⊢)' '=⊢)  "this  is a  sentence with       many   spaces"
    ⟨ 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 ⟩
       ((«¬∘∧⊢)' '=⊢)⊸/  "this  is a  sentence with       many   spaces"
    "this is a sentence with many spaces"
dzaima an hour ago | parent | next [-]

Some alternative spellings:

    (¬∘∧⟜«' '=⊢)⊸/
    (¬·«⊸∧' '=⊢)⊸/
    {¬«⊸∧' '=x}⊸/ # should have double-struck x here (U+1D569), but hn removes it
icen an hour ago | parent [-]

There's also the much less vector oriented spelling:

    (1 ∾˜ "  "⊸(¬∘⍷))⊸/
which removes the first space of each occurrence of double spacing
tosh an hour ago | parent | prev [-]

in k:

  s:"this  is a  sentence with       many   spaces"
  
  s@&~0&':s=" "
brudgers 2 days ago | parent | prev | next [-]

Link to top of page, https://homewithinnowhere.com/posts/2026-05-10-one-line.html

tosh 5 hours ago | parent [-]

ty, I accidentally submitted the url with anchor

i_don_t_know an hour ago | parent | prev | next [-]

Here’s some helpful background information on the project: https://news.ycombinator.com/item?id=47872891

In particular, it has diagrams of the data structures and how the algorithm operates on them.

tosh 5 hours ago | parent | prev | next [-]

The youtube channel has a few videos of the voxel game in action: https://www.youtube.com/@namgyaaal

TruffleLabs 6 hours ago | parent | prev | next [-]

FYI Page certificate is bad (expired, wrong, etc.).

CodesInChaos an hour ago | parent | next [-]

Qualys doesn't find any problems (though it's possible OP fixed them since your comment). The only clients that fail are Windows XP and 10 year old Mac OS/iOS.

https://www.ssllabs.com/ssltest/analyze.html?d=homewithinnow...

kcroarkin 5 hours ago | parent | prev | next [-]

Author here. D’oh! Thanks for catching that. I have no idea what I’m doing web dev wise and made this site to talk about my APL experience. Will try to fix this when time permits.

TacticalCoder 5 hours ago | parent | prev [-]

I see nothing wrong here: Firefox and Chromium are both happy.

    Issued On Saturday, May 2, 2026 at 2:44:13 AM
    Expires On Friday, July 31, 2026 at 2:44:12 AM
    Certificate d87df94f5e922e0637aaff31768405813764ca7dadcafbd051bf48898860fb8f
    Public Key a9bd7eee0bb4f1e12431ca8fab0a70591b8966dad8226db84f53791e2d81c9e3
LoganDark 2 hours ago | parent | prev [-]

> The core what it does seems ridiculously simple. So much so that when I initially considered this I didn’t think it would even be close to being performant. I mean, an interpreted language and all of these movements on large shapes at once!–doesn’t feel like it would be a good idea!!! I guess I was wrong? Doing this on a chunk sized `16 128 16` is pretty fast and I’m able to fly around the map at high speeds (TBA: me demoing this live in a presentation). This kind of boggled my mind and broke my intuitions of what I considered good patterns, at least in the domain of APL.

I wonder what makes it so fast? Is it similar to how GHC can fuse/inline ops and such?