/aplcart

A novel approach to finding your way in APL

Primary LanguageHTMLOtherNOASSERTION

APLcart – A novel approach to finding your way in APL

There is plenty of documentation on what parts of APL do. APLcart seeks to answer How do I… questions.

APLcart is a searchable collection of short APL phrases intended for both beginners and professionals, with content provided by the community. Knowledge of basic APL syntax is a prerequisite.

Note that Internet Explorer is not supported.

Usage

→ See also the video introduction.

Note that APLcart is not intended for finding out, for example, what a symbol means or what a system function does. Please use the language documentation for such purposes. Rather, APLcart is for finding out how to do things.

The site may take some seconds to load due to the information being processed by the browser. Once ready, it does not require internet access any more.

Access-keys are Alt+⇧ Shift (∧ control+⌥ option on macOS)

  • Hit here and start typing (access-key Q — for Query — to re-focus)
  • Hit the logo ⊆⌈ in the top left corner to go to the source code (access-key A — for APLcart)
  • Hit ? in the top left corner to start a new query (access-key E — for Explain)
  • Hit × at the end of the input field to clear it (access-key X — for expunge)
  • Hit # in the top right corner copy to the current search to the address bar (access-key C — for Copy)
  • Hit in the bottom right corner to cycle theme (access-keys B for Black, G for Grey, W for White)
  • Hit the result list to enable movement keys for scrolling (access-key Z)
  • Hit the input field at the top to start a new query (access-key E — for Query)

DuckDuckGo support

DuckDuckGo allows you to search APLcart directly using the !aplcart bang. For example, searching for !aplcart 42 redirects to APLcart. This also means that if you set your browser's default search engine to DuckDuckGo, you can search APLcart directly from your browser address bar by prefixing your search with !aplcart.

URL API ("permalinks")

After clicking # simply copy the current address from your browser's address bar to share the current query. Note that your current theme is intentionally not included, to avoid blinding the recipient. Note that the result for such a URL isn't permanent; it depends on APLcart's content at the time of usage.

Manual construction

After aplcart.info you can add ? and the following options, separated by & if you want both a theme and a query:

  • w select white theme
  • b select black theme
  • q=query prepopulate the Tell me about query field

For example, for a white interface looking for "find", use aplcart.info?w&q=find

Scope

To answer how do I questions, APLcart currently searches over 2000 entries:

  • General syntax, like name f←Y
  • Primitives, like !
  • Control structures, like :If
  • Keywords, like :Access
  • System commands, like )CLEAR
  • System functions, like ⎕SIGNAL
  • System constants, like ⎕A
  • System operators, like ⎕R
  • System variables, like ⎕IO
  • GUI objects, like HTMLRenderer
  • I-beams, like 819⌶
  • Errors numbers and messages, like 11::DOMAIN ERROR
  • User commands, like ]Box
  • A selection of simple dfns, dops, and derived functions like (0=|)
  • All of dfns.dws, like dfns.cal (In APLcart, entries from here are prefixed dfns. . To use, insert {(⍎⍵⎕NS⍬).⎕CY⍵}'dfns' into your code, then call, for example, dfns.cal.)
  • Performance idioms from Dyalog's idiom list, like {(+/∨\' '≠⌽⍵)↑¨↓⍵}
  • Idioms from the APL2 idiom list, like (+/|) (fully updated to use modern APL)
  • James A. Brown's favourite idioms (fully updated to use modern APL)
  • All idioms from the FinnAPL idiom list, like (⊢⍳⌈/) (fully updated to use modern APL)
  • The Yale/APL79 idiom list (fully updated to use modern APL)
  • Selected entries from Dyalog's #onelinerwednesday series, like (×/⊢÷+/-2×⊢)
  • Adapted entries from JSoftware's Phrase Book (translated to APL)
  • and other entries submitted by users like you!

Features wish list

  • links to documentation
  • links to TIO examples

Got an idea for improving the site? Suggest it!

Wrote a cool train? Found a clever dfn? Submit it!

Missing something? Faulty content? Report it!

APL?

  • What is Dyalog APL?
  • Mastering Dyalog APL by Bernard Legrand: a complete guide, beginning with a thorough introduction to the language and progressing to worked examples. Free to download, but can be bought printed.
  • TryAPL: an online interactive environment that allows users to play with simple expressions. Includes tutorial mode in which various scenarios are explored.
  • Dyalog APL Tutor: ancient online system that takes a complete novice through terminology, conventions and functionality
  • APL Cultivation: a Stack Exchange repository of text-based lesson transcripts.
  • The APL Orchard: a Stack Exchange chatroom.
  • Stack Overflow: a question & answer site where APL questions are usually answered very quickly.
  • Full online documentation of the core language.
  • The Documentation Centre: the complete documentation set for download.
  • The dfns workspace: a library installed with Dyalog. In APLcart, entries from here are prefixed dfns. . To use, insert {(⍎⍵⎕NS⍬).⎕CY⍵}'dfns' into your code, then call, for example, dfns.cal.
  • The Dyalog Forums: FAQs, advice, and tips.