HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
phantomics
april
Common Lisp2018–2026
phantomics / april

april

The APL programming language (a subset thereof) compiling to Common Lisp.

31Distinct people
59Mentions
1Explicit recommenders
667GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The APL programming language (a subset thereof) compiling to Common Lisp.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Thanks for the motivation. I love Lisp, and even was into Shen[0] for a while, but Common Lisp has all the libraries and legacy tutorials and books that I will stick it out a…

eggy used a recommendation phrase. 6 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 12:03:30 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year59 dated mentions

Observed mentions: 2018-05-29 08:34:21 UTC to 2026-10-08 02:35:17 UTC.

0510152018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 3 mentions; 2 submissions, 1 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 7 mentions; 3 submissions, 4 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 10 mentions; 1 submissions, 9 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 14 mentions; 3 submissions, 11 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 10 mentions; 1 submissions, 9 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC321
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC110
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC734
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC1019
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC14311
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC1019
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC707
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC303
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC413

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
April Array Programming Re-Imagined in Lisp Ken Iverson's masterpiece reflected in the medium of Lisp. April compiles a subset of the APL programming language into Common Lisp. Leveraging Lisp's powerful macros and numeric processing faculties, it brings APL's expressive potential to bear for Lisp developers. Replace hundreds of lines of number-crunching code with a single line of APL. Why April? APL veritably hums with algorithmic power. As a handful of characters run past the lexer, vast fields of data grow, morph and distil to reveal their secrets. However, APL has hitherto dwelt in an ivory tower, secluded inside monolithic runtime environments. If you have a store of data you'd like to process with APL, getting it there can be an ordeal akin to hauling tons of cargo on donkeys' backs through a narrow mountain pass. The original APL interpreters ran on mainframes whose only input was the keyboard and only output was the printer and the legacy of that implementation approach has persisted to this day, limiting the reach of the language. But no longer. Lisp is the great connector of the software world, digesting and transforming semantic patterns in much the same way that APL works upon numeric patterns. With APL inside of Lisp, databases, streams, binary files and other media are just a few lines of code away from processing with APL. Discussion For the time being, discussion of April and its development is happening on the ##phantomics channel on irc.libera.chat. Support April's Development If you'd like to help provide for continuing work on April, you can contribute through Patreon. April is making fast and steady progress toward the goal of being a powerful, full-featured and professional APL implementation, whose ease of extension and integration with other software offers game-changing advantages in the vector language field. Did you know that April's code at the beginning of December 2021 was over 95% different from its code at the beginning of September 2020? April Media and Publications PLDI 2023 presentation Presentation of paper on April's deferred evaluation features ArrayCast interview Developer interview exploring April's history and features APL Seeds Presentation Presentation of April at Dyalog's APL Seeds '22 conference LispNYC April compiler presentation Video outline and panel discussion showing early April design European Lisp Symposium 2022 paper April: APL Compiling to Common Lisp Compatibility with Common Lisp Implementations April puts the numeric and array processing capabilities of Common Lisp to the test. It has been verified to work with SBCL, CCL, ECL, ABCL, Clasp, Allegro CL and LispWorks. SBCL and CCL are considered fully compatible with no special provisions made in order to function. ECL and Clasp pass all tests with the help of some specific provisions addressing their differences from other CL implementations. ABCL passes all main tests with the help of some special provisions and all dfn tests except those in the tree library, which cannot be loaded due to limitations of the underlying Java virtual machine. Allegro CL and LispWorks both have a few compatibility issues causing failures of dfn tests. See this document for a list of all differences in functionality between implementations. Automatic Installation April is supplied by the Quicklisp library manager, so the easiest way to install April is through Quicklisp. To install April with Quicklisp, evaluate: (ql:quickload 'april) Manual Installation If you'd like to install April manually from this repository, you can follow these instructions. Cloning the Repository First, clone the repository to a location on your system. For this example, let's say you cloned it to the directory ~/mystuff/april. Preparing Quicklisp Enter your Quicklisp local-projects directory (usually ~/quicklisp/local-projects) and create a symbolic link to the directory where you cloned the April repository. For example, if you cloned the repo to ~/mystuff/april and your Quicklisp directory is ~/quicklisp/, enter: cd ~/quicklisp/local-projects ln -s ~/mystuff/april Installing Dependencies To complete the installation, just start a Common Lisp REPL and enter: (ql:quickload 'april) This will download and install April's dependencies, and with that the package will be built and ready. APL Functions and Operators The APL language uses single characters to represent its primitive functions and operators. Most of these symbols are not part of the standard ASCII character set but are unique to APL. To see a list of the glyphs that are supported by April, visit the link below. See the complete April APL lexicon here. Some APL functions and operators won't be added to April since they don't make sense for April's design as a compiler from APL to Lisp. Others may be added in the future. See the list of features not implemented here. Getting to Know APL A full guide to the APL language is far beyond the scope of this file, but here are links to some good sources. A high-level introduction to APL. This is a detailed language tutorial covering most of the functions and operators in April. The original paper by Ken Iverson, creator of APL, detailing the language's underlying philosophy. If you would like a quick tour of the language, April includes a function that will print demos of all the commands and many APL syntax features. To see the demos, enter: * (april (demo)) The * indicates a REPL prompt. Prepare for a long read. The demo content that gets printed will tell you the name(s) of the operations that correspond to each symbol and will hopefully give you some idea of what each one does. How to Enter APL Characters In order to write APL programs you'll need a way to use the language's special character set. Click here for information on enabling APL input within Emacs. Click here for information on enabling APL input within Vim. Click here for information on enabling APL input universally within GNU/Linux. Basic Evaluation: (april
Read the full README on GitHub

What Hacker News says

10 sources
I've touched Zig a few times over the last year or so, and I like it, but I am still itching for something else that is not as complex as Rust, but not too close to C. I am now playing with Scala Native[0] just to see how it works on the low-level stuff. Zig is amazing especially since you can use the compiler as an alternative C compiler too[1]. I like Lisp and APL, so I have been learning April[2], a subset of APL in Lisp. It is very cool, if you like Lisp and APL. The game in Zig in the article reminds me of the Dyalog APL simulation of a boat navigation app developed in Finland using APL[3]. [0] https://github.com/scala-native/scala-native [1] https://andrewkelley.me/post/zig-cc-powerful-drop-in-replace... [2] https://github.com/phantomics/april [3] https://www.dyalog.com/case-studies/simulation.htm
In Zig monthly, October 2021: Games, gamedev, Elixir, tools and more
I have been very interested in this project, but I have not had time to implement it in my workflow. Particularly a project that was on my radar several years ago, but it seems to have lost momentum is tail2futhark[1], a way of compiling APL via tail into futhark for easier gpu programming from APL. I love array languages, and J was my first, followed by APL, and a bit of k. I am noticing a lot of uptake of the array languages this year based on YT content and traffic on the usual array hangouts. In trying to make APL my primary PL, I have been playing with April[2], a subset of APL in Lisp, another old favorite PL. It is a blast. I am honing both my Lisp and APL skills, and they seem to cover each other's weaknesses for easier adoption in the general programming world. [1] https://github.com/henrikurms/tail2futhark [2] https://github.c
Read the rest
In APL Compiler Based on Tail (Typed Array Intermediate Language)
Believe it or not, the APL world's changed a lot since then. I still consider APL dead, but there are strong signs of rebirth. APL dialects April[0] and KAP[1] are improving rapidly, and my own offshoot BQN[2] has gone from prototype to a full language. All of these are open source and made to work with the Unix ecosystem. While the K language isn't as close to APL, ngn/k[3] is following a similar trajectory. This year we created a Discord/Matrix forum[4] (bridged together) for array languages, which has hundreds of members and a few conversations per day at the slowest. The Array Cast was featured prominently here when the first episode aired[5] and is also worthy of note: they say they now have thousands of subscribers. [0] https://github.com/phantomics/april [1] https://github.com/lokedhs/array [2] https://mlochbaum.github.io/BQN/ [3]
Read the rest
In APL in its modern state (2020)
I am playing with and learning April[1], a subset of APL that compiles to Lisp. It is a blast for me, because I had programmed a bit in Lisp in the 90s, and then I found J around 2011/12. I always loved Lisp, and I didn't really get into Clojure, although it is a nice language. I had heard of APL when I had my Commodore PET 2001 in 1977 and my Vic20 later, but I never got to play with it. Once I did back in 2015, and the APL characters resonated with me (hard to find keyboard input workarounds etc.) because I was free of the associations of ASCII and the symbols made sense as I learned it a bit in their graphic representation and function. I have dreamed of having a real, modern Lisp Machine, so maybe I can get some of that with Mezzano. I am not sure how hard or easy it would be for April's creator, Andrew Sengul (##phantomics) to swing
Read the rest
that, but I would participate in a crowdsourcing of it (on The Framework notebook[2] would be the icing on the cake!). I don't know enough of Mezzano to say how vialbe it really is, but I am hoping! I didn't quite get April right away, but I am really starting to appreciate it (with Andrew's help, and the APL community). Andrew's 'Why April' section, poetic and seemingly hyperbolic, is ringing less hyperbolic and more true as I get to know this twisted marriage of PLs: Lisp's legacy, tons of libs, emacs/slime, debugging, and parentheses, yes those beautiful things, to handle all the "front end" programming you could ever need, to feed the array-munching and alchemy of APL. And what about Python? I refer all Pythonistas to take heed of their and MIT's sinful choice to worship the serpent and casting us out from the garden of Lisp! Just read Milton's Paradise Lost, Book X, around verse 550-ish ;) Machine learning which is heavily based on arrays or array math in their implementation, hence the popularity of libs to handle them like Pandas and NumPy (inspired by J, by the way. Ask Wes McKinney), has some nice nuggets or implementations of an ELM (Extreme Learning Machine) in J called 'JELM'[3], CNNs in APL[4] with some benchmarks, or getting APL into optimized GPU code via Futhark[5] and apltail[6]. And under some of those covers is Haskell as a treat! Ah, yes we live in interesting times! A link to an HN post in 2020 by Andrew: [0] https://news.ycombinator.com/item?id=24434717 [1] https://github.com/phantomics/april [2] https://frame.work/ [3] https://github.com/peportier/jelm [4] https://dl.acm.org/doi/10.1145/3315454.3329960 [5] https://futhark-lang.org/blog/2016-06-20-futhark-as-an-apl-c... [6] https://github.com/melsman/apltail/ Milton reference for the pious (with no parentheses;) or proper line breaks, sorry!) Now Dragon grown, larger then whom the Sun Ingenderd in the Pythian Vale on slime, Huge Python, and his Power no less he seem’d Above the rest still to retain; they all Him follow’d issuing forth to th’ open Field, Where all yet left of that revolted Rout Heav’n-fall’n, in station stood or just array, Sublime with expectation when to see In Triumph issuing forth thir glorious Chief; They saw, but other sight instead, a crowd Of ugly Serpents; horror on them fell, And horrid sympathie; for what they saw, They felt themselvs now changing; down thir arms, Down fell both Spear and Shield, down they as fast, And the dire hiss renew’d, and the dire form Catcht by Contagion, like in punishment, As in thir crime.
In Mezzano on Librebooted ThinkPads
You may be interested in April[0], a version of APL embedded in Common Lisp so that it can be called as part of a CL program. Also, my own language BQN[1] is a rework of APL that comes much closer to Lisp in that it has first-class functions and closures. It's self-hosted (using a compiler that follows Aaron's strategy), allowing it to be embedded in other languages with relatively little effort, but currently poor performance. There are Javascript and C VMs with another programmer working on one in Erlang; Clojure could definitely be a possibility. [0] https://github.com/phantomics/april [1] https://mlochbaum.github.io/BQN/
In How much can a Clojure developer do alone?

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.