# April APL

> implementation of APL language

**Wikidata**: [Q106520170](https://www.wikidata.org/wiki/Q106520170)  
**Source**: https://4ort.xyz/entity/april-apl

## Summary
April APL is an open-source implementation of the APL programming language written in Common Lisp. It is licensed under the Apache Software License 2.0 and reached version 1.0 in February 2022. April APL is influenced by Dyalog APL and the K programming language.

## Key Facts
- **License**: Apache Software License 2.0
- **Latest Version**: 1.0 (released February 3, 2022)
- **Programming Language**: Written in Common Lisp
- **Instance of**: Array programming language, software
- **Influenced by**: Dyalog APL, K
- **Implementation of**: APL programming language
- **Source Repository**: https://github.com/phantomics/april
- **Dependencies**: Steel Bank Common Lisp, LispWorks
- **Aliases**: April
- **IRC Channel**: irc://irc.libera.chat/##phantomics

## FAQs

### Q: What programming language is April APL written in?
A: April APL is written in Common Lisp. It depends on Steel Bank Common Lisp and LispWorks as underlying implementations.

### Q: What license does April APL use?
A: April APL is released under the Apache Software License 2.0, making it open-source and freely available for use and modification.

### Q: What are the influences behind April APL?
A: April APL is influenced by Dyalog APL, a commercial APL implementation, and K, another array programming language known for its conciseness and performance.

## Why It Matters
April APL represents a distinctive approach to implementing the APL programming language by using Common Lisp as its foundation. This choice is significant because it bridges two historically important programming paradigms: array-oriented programming (APL) and functional, list-based programming (Lisp). By building on Common Lisp, April APL can potentially leverage the mature optimization capabilities and cross-platform support of established Lisp implementations like Steel Bank Common Lisp and LispWorks. The project reached a notable milestone with its 1.0 release in February 2022, indicating a level of maturity and stability for users. As an open-source implementation under the Apache 2.0 license, April APL provides an accessible entry point for developers interested in exploring APL without the cost barriers associated with some commercial implementations.

## Notable For
- **Common Lisp Foundation**: Uniquely implements APL using Common Lisp rather than C or other systems languages typical of APL implementations
- **Dual Influences**: Draws design inspiration from both Dyalog APL and K, blending approaches from two major array language traditions
- **Open Source**: Released under Apache Software License 2.0, providing permissive terms for adoption and contribution
- **Active Development**: Progressed from version 0.9.5 in early 2019 to version 1.0 in February 2022

## Body

### Technical Architecture
April APL is an implementation of the APL programming language constructed using Common Lisp. The software depends on two Lisp implementations: Steel Bank Common Lisp (SBCL), an open-source Common Lisp compiler, and LispWorks, a commercial Common Lisp IDE and runtime. This architecture allows April APL to leverage existing Lisp infrastructure while providing APL semantics and array-oriented computation capabilities.

### Version History
The project has documented releases spanning from 2019 to 2022:

| Version | Release Date |
|---------|--------------|
| 0.9.5 | January 12, 2019 |
| 0.9.55 | February 2, 2019 |
| 1.0 | February 3, 2022 |

The version 1.0 release marked a significant milestone, designated as the preferred version in the project's release history.

### Licensing and Copyright
April APL is distributed under the Apache Software License 2.0, a permissive open-source license that allows broad freedom for use, modification, and distribution. Despite the open license, the software retains copyrighted status.

### Community and Resources
- **Source Code**: Hosted on GitHub at github.com/phantomics/april
- **Documentation**: Described at the APL Wiki (aplwiki.com/wiki/April)
- **IRC Channel**: Real-time discussion available at irc://irc.libera.chat/##phantomics
- **Patreon**: The project has an associated Patreon presence under the identifier "lisp"

### Classification and Relationships
April APL is classified both as software (a non-tangible executable component of a computer) and as an array programming language. Its design has been influenced by two significant languages in the array programming tradition: Dyalog APL, a widely-used commercial APL implementation, and K, known for its performance in financial and data-intensive applications.

## References

1. [Release 0.9.5. 2019](https://github.com/phantomics/april/releases/tag/v0.9.5)
2. [Release 0.9.55. 2019](https://github.com/phantomics/april/releases/tag/v0.9.55)
3. [Release 1.0. 2022](https://github.com/phantomics/april/releases/tag/v1.0)