APL Orchard: Difference between revisions

Jump to navigation Jump to search
1,797 bytes added ,  18:52, 23 January 2021
no edit summary
No edit summary
(8 intermediate revisions by 4 users not shown)
Line 13: Line 13:
== Features ==
== Features ==
=== Messages ===
=== Messages ===
In the chat you can use a simplified subset of [[wikipedia:markdown|markdown]] for simple formatting like ''italics'', '''bold''' and <s>strikethrough</s>. You can include [[wikipedia:Easter_egg_(media)|links]] in your messages, or post an image. See [[{{PAGENAME}}#Basic Formatting|below]] for details.
In the chat you can use a simplified subset of [[wikipedia:markdown|markdown]] for simple formatting like ''italics'', '''bold''' and <s>strikethrough</s>. You can include [[wikipedia:Easter_egg_(media)|links]] in your messages, or post an image. See [[{{PAGENAME}}#Basic formatting|below]] for details. The [https://chat.stackexchange.com/rooms/1/sandbox Sandbox] room can be used to experiment with the chat system without bothering anyone.


To write a message, type into the input field and press <kbd>Enter</kbd> or click the <kbd>send</kbd> button to submit.
To write a message, type into the input field and press <kbd>Enter</kbd> or click the <kbd>send</kbd> button to submit.
Line 35: Line 35:
* '''Bold''': <source lang=md inline>**bold**</source> or <source lang=md inline>__bold__</source>
* '''Bold''': <source lang=md inline>**bold**</source> or <source lang=md inline>__bold__</source>
* '''Strike through''': <source lang=md inline>---strike through---</source>
* '''Strike through''': <source lang=md inline>---strike through---</source>
* '''Inline code:''' <source lang=md inline>`inline code`</source> <ref>Backticks can be escaped with a backslash (<source lang=md inline>`\`x\`y`</source> renders as <code>`x`y</code>). Alternatively, <code>``multiple`backticks\``</code> (which disable <code>\</code>-escaping) can be used, giving <code>multiple`backticks\</code>. Multiple consecutive backticks can only appear in inline code that is delimited by even longer runs of backticks <source lang=md inline>```x``y```</source> renders as <code>x``y</code>. Note that inline code cannot have leading or white-space.</ref>
* '''Inline code:''' <source lang=md inline>`inline code`</source> <ref>Backticks can be escaped with a backslash (<source lang=md inline>`\`x\`y`</source> renders as <code>`x`y</code>). Alternatively, <code>```multiple``backticks\```</code>, which also disable <code>\</code>-escaping, can be used, giving <code>multiple``backticks\</code> - use a delimiter with one more backtick than the longest run of backticks in the code. Note that inline code cannot have leading white-space.</ref>
* '''Link''': <source lang=md inline>https://example.com</source> or <source lang=md inline>[display me](https://example.com)</source> or <source lang=md inline>[display me](https://example.com "hover text")</source><ref>Long URLs will be truncated with an ellipsis. A URL that exceeds the maximum message length of 500 characters can still be posted as a raw URL (without markdown): Follow it by <kbd>Shift</kbd>+<kbd>Enter</kbd>.</ref>
* '''Link''': <source lang=md inline>https://example.com</source> or <source lang=md inline>[display me](https://example.com)</source> or <source lang=md inline>[display me](https://example.com "hover text")</source><ref>Long URLs will be truncated with an ellipsis. A URL that exceeds the maximum message length of 500 characters can still be posted as a raw URL (without markdown): Follow it by <kbd>Shift</kbd>+<kbd>Enter</kbd>.</ref>
* '''Tags''': <source lang=md inline>[tag:code-golf]</source> or <source lang=md inline>[meta-tag:discussion]</source> (tags from Stack Exchange's [[code golf]] community, [https://codegolf.stackexchange.com/ Code Golf & Coding Challenges])
* '''Tags''': <source lang=md inline>[tag:code-golf]</source> or <source lang=md inline>[meta-tag:discussion]</source> (tags from Stack Exchange's [[code golf]] community, [https://codegolf.stackexchange.com/ Code Golf & Coding Challenges])
Line 59: Line 59:
=== Chat bot ===
=== Chat bot ===


The room features a chat bot, '''Dyalog APL''', which can evaluate a safe subset of APL.<ref>Using [[Adám Brudzewsky]]'s [https://github.com/abrudz/dyalog-safe-exec Safe Execute for Dyalog APL] tool.</ref> To use it, prefix a chat message, inline code, or a code block with <source lang=apl inline>⋄</source>. Using markdown (for example <source lang=md inline>`⋄ 2+3`</source>) or fixed-width (4 or more initial spaces on each line, which can be inserted by pressing <kbd>Ctrl</kbd>+<kbd>k</kbd>) is highly recommended for readability and to avoid, interpretation of APL symbols as markdown.
The room features a chat bot, '''Dyalog APL''', which can evaluate a safe subset of APL.<ref>Using [[Adám Brudzewsky]]'s [https://github.com/abrudz/dyalog-safe-exec Safe Execute for Dyalog APL] tool.</ref> To use it, prefix a chat message, inline code, or a code block with <source lang=apl inline>⋄</source>. Using markdown (for example <source lang=md inline>`⋄ 2+3`</source>) or fixed-width (4 or more initial spaces on each line, which can be inserted by pressing <kbd>Ctrl</kbd>+<kbd>k</kbd>) is highly recommended for readability and to avoid interpretation of APL symbols as markdown.
 
=== APL execution userscript ===
 
Similar in functionality to the chat bot, the userscript adds an [[Execute]] button (<kbd>⍎</kbd>) to the right of the chat box. Clicking it or hitting access-key<ref>The keyboard combination varies by browser and operating system. For details, see  W3Schools' [https://www.w3schools.com/tags/att_global_accesskey.asp#table2 HTML accesskey Attribute] article.</ref> <kbd>x</kbd>, uses the [[Running APL|TryAPL]] API to execute the first line currently in the chat box, and appends the result to the chat box, while also formatting the chat box content to be rendered in monospace font. One can then hit the <kbd>send</kbd> button or <kbd>Enter</kbd> to submit the message. With a userscript extension (for example [https://www.tampermonkey.net/ Tampermonkey]) installed, navigating to [https://github.com/razetime/userscripts/raw/main/chatexec.user.js the raw file], should cause the extension to suggest automated installation. Alternatively, the script can be downloaded from the [https://github.com/razetime/userscripts userscripts GitHub repository] of [[User:Razetime|Razetime]], or from the [https://greasyfork.org/en Greasyfork userscript host] under the name [https://greasyfork.org/en/scripts/419379-chat-box-exec Chat box exec].


== Conventions ==
== Conventions ==
Line 92: Line 96:


=== APL Seeds ===
=== APL Seeds ===
:{{Main|APL Seeds}}
In 2020, [[Marshall Lochbaum]] ran a mini-series 60-minute live chat lessons on implementing APL-like languages, especially focusing on [[BQN]]:
Beginning 10 June 2020, [[Marshall Lochbaum]] ran a mini-series of chat lessons on implementing APL, especially focusing on [[BQN]].
{|class=wikitable
! Lesson !! Title !! Date
|-
| S1 || [https://chat.stackexchange.com/rooms/52405/conversation/lesson-s1-parenthesis-nesting-level Parenthesis nesting level] || Jun 10, 2020
|-
| S2 || [https://chat.stackexchange.com/rooms/52405/conversation/lesson-s2-infix-to-rpn Infix to RPN] || Jun 24, 2020
|-
| S3 || [https://chat.stackexchange.com/rooms/52405/conversation/lesson-s3-parsing-expressions-with-parentheses Parsing expressions with parentheses] || July 8, 2020
|}


== External links ==
== External links ==

Navigation menu