Latest progress on my programming language: Some basic APL functionality has been implemented (such as ⍴, ⍳, ¨).

The main thing that sets my language apart from APL is that it's lazy evaluated. That is essential when working with large arrays. An operation such as ⍉ or two-argument ⍴ are very cheap in terms of CPU usage.

I've also started building a simple user interface for it.

I also intend to provide a much richer set of flow control operations than typical APL implementation. Normal APL basically only has goto. Dyalog has some structured programming constructs, but they are quite ugly.

I feel that if a program is long enough that it needs flow control, then there isn't as much to gain from the terseness of APL, so I prefer to have it look more "normal" in those cases. By normal I mean that it's OK if I don't do everything with just a few chars.

Follow

@loke I tried some test code for primes with GNU APL, dense syntax (even if a bit slow), interesting, first time I tried:
R ← 100
(~R∊R∘.×R)/R←1↓ιR
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

@loke Also like the awesome classic light-blue striped continuous paper style ("pyjama") in the interpreter. Looking forward to try your programming language.

@modrobert Yes, this code will work in my implementation. Note that it's slow because it's very inefficient. However, it's the most clear way of doing it.

If you want to optimise it the resulting code is going to be much uglier in standard APL.

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.