https://aplwiki.com/api.php?action=feedcontributions&user=Master+Quiz&feedformat=atomAPL Wiki - User contributions [en-gb]2024-03-29T09:11:24ZUser contributionsMediaWiki 1.38.2https://aplwiki.com/index.php?title=Humour&diff=7974Humour2022-01-05T20:10:30Z<p>Master Quiz: /* Rebuses */</p>
<hr />
<div>Employment of wit and puns has a long history in the APL [[community]]. In particular, [[John Scholes]] was known for [[wikipedia:John_M._Scholes#Wit|his wit]]. This article attempts to list and explain specific expressions of APL-themed humour.<br />
<br />
== Glyph puns ==<br />
<br />
APL's unique [[glyphs]] are a constant source of puns and allusions. Most puns rely on the visual shape of the glyphs, or of various common or uncommon names for them.<br />
<br />
* The song [[APL Blossom Time]] includes numerous references to [[primitive function|primitives]].<br />
<br />
* A 2015 [[Dyalog Ltd.|Dyalog]] [[blog]] post by [[Roger Hui]], titled [https://www.dyalog.com/blog/2015/12/apl-puns/ APL Puns] collects many such glyph puns.<br />
<br />
* Many APL glyphs have popular humorous names in addition to their official names. This includes ''splat'' for the [[Logarithm]] symbol (<source lang=apl inline>⍟</source>), which is also often called ''Log'' (the common mathematical abbreviation for Logarithm) and an allusion to the symbol looking like a stylised tree log.<ref>[[Eugene McDonnell]]. [https://www.jsoftware.com/papers/eem/storyofo.htm Recreational APL: The Story of <source lang=apl inline>○</source>]. [[APL Quote-Quad]], Volume 8, Number 2, 1977-12.</ref><br />
<br />
* ''Slash-functions may only be in our trains when accompanied by a calming constant or a responsible operator.''<ref>[[Adám Brudzewsky]]. Chat message {{m|50586658}}. [[APL Orchard]]. 6 Jun 2019.</ref> This is a [[wikipedia:double entendre|double entendre]] in that it sounds like [[wikipedia:by-law|by-law]] of a transit company while it actually speaks about forcing function/operator [[hybrid]]s into acting as [[function]]s by either giving them a (constant) array left-[[argument]] or letting them be the [[operand]] of an [[operator]].<br />
<br />
* APLers often use individual glyphs as [[wikipedia:smiley|smiley]]s, e.g. <source lang=apl inline>⍨</source> or <source lang=apl inline>⍥</source> or <source lang=apl inline>⍤</source>, or create custom [[wikipedia:emoticon|emoticon]]s like <source lang=apl inline>○/</source> ("bye") or <source lang=apl inline>¯\_(⍨)_/¯</source> ("shrug").<br />
<br />
== Rebuses ==<br />
<br />
* Give-aways featuring the three glyphs <source lang=apl inline>⍺*⎕</source> used to be common at [[APL conference]]s because these are the symbols traditionally produced when holding down the APL shifting key and [[typing]] <kbd>A</kbd><kbd>P</kbd><kbd>L</kbd>.<br />
<br />
* ''I was perched ⍤ the tower, giving my un÷d @tention 2 the ⌷ re∪ @ the ⌊ of the ⊂d ○ below me and ↑ing note of ¨ ⍨r's arrival time in my ⍟ ~ ⎕DL'': I was perched [[atop]] the tower, giving my un[[divide]]d [[at]]tention to the [[squad]] re[[union]] [[at]] the [[floor]] of the [[enclose]]d [[circle]] below me and [[take|tak]]ing note of [[each]] [[commute]]r's arrival time in my [[log]] [[without]] [[delay]].<ref>[[Adám Brudzewsky]]. Chat message {{m|54937708}}. [[APL Orchard]]. 7 December 2020.</ref><br />
<br />
* <source lang=apl inline>¨∊∪←=⊢2⍝∧?*</source>: [[Each]] [[member]] of the [[union]] [[gets]] [[equal]] [[right]] to [[comment]] [[and]] [[roll|question]] [[power]].<ref>[[Nick Nickolov]]. Internal email. [[Dyalog Ltd]]. 11 Dec 2015.</ref><br />
<br />
* <source lang=apl inline>⊢>+⌿÷≢</source>: This [[monadic]] [[train]] indicates [[element]]s that are "[[greater than]] average" or "above [[Simple_examples#Tacit_programming|average]]" and is used as catch phrase by [[Richard Park]] and [[Aaron Hsu]].<ref>[[Aaron Hsu]]. [https://www.bonfire.com/above-average/ Above Average] shirts. Bonfire web store.</ref><br />
<br />
[[File:APLcart logo.png|thumb|right|The APLcart logo explained as a shopping cart.]]<br />
<br />
== Glyph art ==<br />
<br />
As with [[wikipedia:ASCII art|ASCII art]], APL [[glyph]]s are often used to draw pictures.<br />
* [[wikipedia:Nativity scene|Nativity scene]]:<source lang=apl><br />
⍟<br />
⍒ ⍋⍛ ⍒⍒⍒⍤⍥<br />
</source>Legend: <source lang=apl inline>⍒</source> Joseph, <source lang=apl inline>⍋</source> Mary, <source lang=apl inline>⍛</source> Jesus, <source lang=apl inline>⍒⍒⍒</source> three wise men, <source lang=apl inline>⍤</source> donkey, <source lang=apl inline>⍥</source> ox, <source lang=apl inline>⍟</source> Star of Bethlehem.<ref>[[Nick Nickolov]]. Chat messages {{m|56547006}} and {{m|56547161}}. [[APL Orchard]]. 25 Dec 2020.</ref><br />
<br />
* A [[Dyalog duck]]:<source lang=apl><br />
≤(∘)_<br />
(⍷_/<br />
</source><br />
<br />
* The [[APLcart]] logo is a stylised profile view of a [[wikipedia:|shopping cart]] in the form of the two glyphs Left-shoe Underbar and Upstile: <source lang=apl inline>⊆⌈</source><br />
<br />
[[File:How X sees Y.png|thumb|right|APL vs J vs K]]<br />
<br />
== Comparison of dialects ==<br />
<br />
There is a friendly rivalry between adherents of various APLs and derivatives which can lead to tongue-in-cheek attacks.<br />
<br />
* ''APL vs J vs K''<ref>[[Nick Nickolov]]. Chat message {{m|51655962}}. [[APL Orchard]]. 10 Sep 2019.</ref> is a collage of nine images that purport to illustrate how adherents of APL, [[J]], and [[K]], see the other languages. Going in [[ravel order]], APLers think of APL as the ultimate [[tool of thought]], J as APL's little brother that is too focused on mathematics, and K as being too restricted. J users see APL as the revered sage that has outlived itself using foreign (Chinese) characters that do not fit into a normal rectangle (thus being cut off on the right), J as the perfect all-round tool, and K as running after monetary gain (K being very fast, and often used for [[wikipedia:high-frequency trading|high-frequency trading]]). K users see APL as bloated and old, J as bloated and a joke full of <source lang=j inline>.</source>s and <source lang=j inline>:</source>s (as these two characters are used as suffixes to expand the number of ASCII symbols), and K as the key to winning the race.<br />
<br />
== Criticism of APL ==<br />
<br />
Some features or APL are often ridiculed by APLers. Chiefly among them is the ability too [[index origin]], which leads to [[wikipedia:off-by-one error|off-by-one error]]s even more often in APL than usually seen in programming.<br />
<br />
* [[Roger Hui]], a strong proponent of fixing index origin ― <source lang=apl inline>⎕IO</source> ― at zero is known for often inserting the phrase ''<source lang=apl inline>⎕IO</source> delenda est'' based on Cato's famous Latin oratorical phrase ''[[wikipedia:Carthago delenda est|Carthago delenda est]]''.<br />
<br />
* In 2017, as an [[wikipedia:April Fools' Day|April Fools' Day]] joke, [[Dyalog Ltd.]] announced "a final improvement" to the "otherwise deprecated language feature", [[Branch]], which would make it sensitive to the selected index origin. Such a change would cause a great many existing programs to break.<br />
<br />
* [[Nick Nickolov]] has created an interactive form that claims to be an [https://ngn.codeberg.page/funny/reg.html Array Language Implementation Permission Request] addressed to the fictitious ''Ministry of Vector Processing'' and contains many in-jokes for APL [[language developers]].<ref>[[Nick Nickolov]]. Chat message {{m|57121910}}. [[APL Orchard]]. 21 Feb 2021.</ref><br />
<br />
* This poem of unknown origin has been circulating the internet:<ref>Dyalog Blog. [https://www.dyalog.com/blog/poetry/ Poetry]. Undated. Retrieved 29 Oct 2021.</ref><blockquote>'Tis the dream of each programmer,<br>Before his life is done,<br>To write three lines of APL,<br>And make the damn things run.</blockquote><br />
<br />
== Pop culture ==<br />
<br />
References to Star Wars and Star Trek are common among programmers in general and APLers in particular.<br />
<br />
* ''<source lang=apl inline>⍣¯1</source> is a pathway to many abilities some consider to be unnatural.''<ref>[[Adám Brudzewsky]]. Chat message {{m|56366116}}. [[APL Orchard]]. 7 December 2020.</ref> alludes to ''The dark side of the Force is a pathway to many abilities some consider to be unnatural.'' uttered by [[wikipedia:Darth Sidious|Darth Sidious]] in [[wikipedia:Star Wars: Episode III – Revenge of the Sith|Star Wars: Episode III – Revenge of the Sith]]. The similarity was drawn because the [[Power operator]] (<source lang=apl inline>⍣</source>), when given a negative number (e.g. <source lang=apl inline>¯1</source>) right operand, indicating the number of times to apply a [[function]], works much like a [[wikipedia:black box|black box]]. It will at times appear to solve "impossible" problems (by using numerical methods to what appears to be require symbolic manipulation) or give "fantastical" results by succeeding in reversing non-numeric operations. It can also choose any one of multiple correct answers, with no obvious system as to which answer is chosen. The full power of this operator is not documented.<br />
[[File:Me at the APL Orchard.png|right|thumb|Me at the APL Orchard]]<br />
<br />
== Memes ==<br />
<br />
* The [[APL Orchard]] chat room is frequented by expert and neophyte APLers alike. A recurring theme is that newcomers feel inferior in the presence of the those with more experience. In the [[wikipedia:anime|anime]] illustration, the people listed are, from left to right, [[Nick Nickolov]] (creator of [[ngn/apl]] and former employee at [[Dyalog Ltd.]]), [[dzaima]] (creator of [[dzaima/APL]] and 2020 2nd Place winner of the 2020 [[APL Problem Solving Competition]]), [[Adám Brudzewsky]] (lifelong APL programmer, founder of the APL Orchard, creator of [[Extended Dyalog APL]], and employee at [[Dyalog Ltd.]]), and Woosuk Kwak (2020 Professional Prize winner in the APL Problem Solving Competition). <ref>Raghu Ranganathan. Chat message {{m|55290368}}.[[APL Orchard]]. 19 Aug 2020.</ref><br />
[[File:Before and after.jpg|thumb|right|"Before and After" meme.]]<br />
* Using APL can "spoil" a programmer, in the sense that they get frustrated by the lack expressiveness in other programming languages. This is expressed by an instance of the "Before and After" meme.<ref>Raghu Ranganathan. Chat message {{m|58877609}}.[[APL Orchard]]. 13 Aug 2021.</ref><br />
<br />
* ''15=∞ for sufficiently small values of ∞''<ref>[[Adám Brudzewsky]]. Chat message {{m|41106395}}. [[APL Orchard]]. 31 Mar 2020.</ref> or ''99≈∞ for sufficiently small values of ∞''<ref>Adám Brudzewsky. Chat message {{m|53955678}}. [[APL Orchard]]. 12 Nov 2017.</ref> alludes to the use of e.g. <source lang=apl inline>⍤0 15</source> or <source lang=apl inline>⍤0 99</source> in APLs that have a limited maximum [[rank]] and do not support infinity as a [[number|numeric literal]]. In particular, [[Dyalog APL]]'s maximum rank is 15, and so in the very specific context of the right operand of [[Rank (operator)|Rank]], 15=∞.<br />
<br />
* ''[[ngn]]'s scans'' or ''[[ngn]]'s cumulative reduces'' refers to [[Nick Nickolov]]'s uncanny ability to come up with unusual uses of [[Scan]] for solving various problems, e.g. negating every other number with <source lang=apl inline>⊢∘-\</source>.<ref>[[Nick Nickolov]]. Chat message {{m|43074306}}. [[APL Orchard]]. 26 Feb 2018.</ref><br />
<br />
== Apples ==<br />
<br />
Puns built upon how ''apple'' (/ah-pell/) and ''APL'' (/aye-pea-ell/) sound similar are often used both in visual media and in naming.<br />
<br />
* An apple logo has been used by [[IBM]] in advertisements, badges, and stickers given out at [[APL conference]]s.<br />
<br />
* [[Adrian Smith]] uses an apple icon on his APL-385 [[Fonts|font]] site.<ref>Adrian Smith. [https://apl385.com/fonts/index.htm APL385 Font Page].</ref><br />
<br />
* Dyalog used an apple logo to celebrate [[50 years of APL]] (part of [[Dyalog '16]]).<ref>[[Dyalog Ltd]] web site. [https://www.dyalog.com/50-years-of-apl.htm 50 Years of APL].</ref><br />
<br />
* [https://github.com/aplteam/APLTree APLTree] ("apple tree") code library.<br />
<br />
* [https://github.com/Dyalog/pynapl/ Py'n'APL] ("pineapple") Python-APL bridge ([[wikipedia:Python (programming language)|Python]] is often abbreviated "py-" when used in conjunction with other terms).<br />
<br />
* [https://github.com/Dyalog/SAWS SAWS] and [https://github.com/the-carlisle-group/Acre-Desktop/tree/master/APLSource Acre APLSource] as in "[[wikipedia:apple sauce|apple sauce]]".<br />
<br />
* [[APL Orchard]] ("apple orchard").<br />
<br />
* [[APLcart]] as in "[[wiktionary:upset the applecart|upset the applecart]]" (spoil an established arrangement) as the project was intended to disrupt the traditional way of documenting APL.<br />
<br />
* [[APL Seeds]] ("apple seeds") alluding to the conference aiming at those that are potentially growing into APLers, like apple seeds grow into apples (via apple trees). The event website features an apple grove.<ref>Dyalog Ltd. [https://dyalog.com/apl-seeds-user-meetings/aplseeds21.htm APL Seeds '21].</ref><br />
<br />
* [[APL Campfire]] uses a promotional banner with an apple being roasted over a campfire.<br />
<br />
* [[Tatin]] is a work-in-progress package manager, [[wikipedia:tarte Tatin|tarte Tatin]] being a specific type of apple pastry. Its logo is the [[logarithm]] symbol, coloured to resemble a stylised tarte Tatin.<br />
<br />
* [[Dyalog APL]] by default uses the file name <code>aplcore</code> ("apple core") for its [[wikipedia:code dump|code dump]]s.<br />
<gallery mode=packed><br />
50years logo.png|[[50 years of APL]] apple.<br />
APL Orchard list.png|Community ad for the [[APL Orchard]] on [[Code golf|Code Golf]] Stack Exchange.<br />
APL logo light.png|An [[APL logo]], proposed by [[Adám Brudzewsky]].<br />
APL seeds logo.png|The logo for [[APL seeds]], a conference for new APLers.<br />
BYTE Cover Aug 1977.png| [[wikipedia:BYTE|BYTE]] featuring APL.<br />
</gallery><br />
<br />
== References ==<br />
<references/><br />
[[Category:Lists]][[Category:Glyphs]]{{APL community}}</div>Master Quizhttps://aplwiki.com/index.php?title=TryAPL&diff=7929TryAPL2022-01-01T21:29:37Z<p>Master Quiz: /* Fetch */</p>
<hr />
<div>[[File:TryAPL logo.png|thumb|right|TryAPL's logo.]]<br />
<br />
'''TryAPL''' is online service that allows trying out a subset of [[Dyalog APL]]. The back-end is a [https://github.com/Dyalog/Jarvis Jarvis] server that uses [[Adám Brudzewsky]]'s [https://github.com/abrudz/dyalog-safe-exec Safe Execute] to provide [[wikipedia:sandbox (computer_security)|sandbox]]ing. The source code for TryAPL was released under the [[wikipedia:MIT License|MIT License]] on 15 July 2021.<ref>[[Dyalog Ltd.]] [https://github.com/Dyalog/TryAPL TryAPL]. GitHub.</ref><br />
<br />
== Interfaces ==<br />
Since version 3.0, TryAPL's [[wikipedia:front end and back end|front end and back end]] are completely separate, with a very simple [[#API|API]], and no [[wikipedia:server-side|server-side]] state. This has enabled the [[community]] to develop their own interfaces to the back-end.<br />
<br />
=== TryAPL.org ===<br />
[https://tryapl.org TryAPL.org] is the original and main web interface for the back-end:<br />
[[File:TryAPL|center|thumb|TryAPL's web inferface]]<br />
<br />
The source code is available [https://github.com/razetime/APLgolf/ on Github].<br />
<br />
=== TryAPL Mini ===<br />
[https://janiczek.github.io/tryapl-elm/ TryAPL Mini] is an alternative web interface written in [[wikipedia:Elm (programming language)|Elm]], focusing on exploration of [[primitive]]s. Half of the screen is used to display information about whichever [[glyph]] the user last hovered their mouse over on the built-in [[Typing_glyphs#Web|language bar]].<br />
<br />
The source code is available [https://github.com/janiczek/tryapl-elm/ on GitHub].<br />
<br />
=== APLgolf ===<br />
[https://razetime.github.io/APLgolf/ APLgolf] is a website that assists in composing answers for [[code golf|Code Golf]] [[wikipedia:Stack Exchange|Stack Exchange]].<br />
<br />
The source code is available [https://github.com/razetime/APLgolf/ on GitHub].<br />
<br />
=== Bookmarklet ===<br />
<br />
Creating a [[wikipedia:bookmarklet|bookmarklet]] with the following URL, will enable clicking on the bookmark to pop up a box wherein one can enter an APL expression, which will then be executed, and the result shown in another pop-up:<br />
<source lang=js><br />
javascript:((()=>{with(new XMLHttpRequest){open(`POST`,`https://tryapl.org/Exec`);setRequestHeader(`Content-Type`,`application/json;charset=utf-8`);send(JSON.stringify([0,0,0,prompt()]));onload=(_=>alert(eval(responseText)[3].join`\n`+`\n`))}})())</source><br />
<br />
=== Chat box exec ===<br />
[https://gist.github.com/razetime/8d0be74e104ac54b1e55d57bec8c2156 Chat box exec] is a [[wikipedia:userscript|userscript]] that adds an [[Execute]] button (<kbd>⍎</kbd>) to right of the message input area in [[wikipedia:Stack Exchange|Stack Exchange]]'s chat rooms. Clicking this button, 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>, executes the first line of the text that is currently in the message input area, and appends the result to the area, while also formatting the message to be rendered in monospace font. One can then hit the <kbd>send</kbd> button or press <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 [https://github.com/razetime/userscripts the 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].<br />
<br />
=== Chatbot ===<br />
[[wikipedia:Stack Exchange|Stack Exchange]] moderator "hyper-neutrino" hosts a [[wikipedia:chatbot|chatbot]] using TryAPL's name and icon, active in two Stack Exchange chat rooms; the [[APL Orchard]] and the Stack Exchange's [[sandbox (software_development)|sandbox]] chat room. To use it, write [[APL Orchard#inline|inline code]] or a [[APL Orchard#Multi-line messages|multi-line code block]], and prepend <source lang=apl inline>⎕←</source> or <source lang=apl inline>⋄</source> to lines you wish to run, in any of the two chat rooms:<ref>For details, see [https://codegolf.stackexchange.com/users/75949 the chat bot's profile].</ref><br />
<br />
* [https://apl.chat APL Orchard]<br />
* [https://chat.stackexchange.com/rooms/1/sandbox Sandbox]<br />
<br />
The source code is available [https://github.com/hyper-neutrino/apl-bot on GitHub].<br />
<br />
=== Twitter bot ===<br />
[https://twitter.com/tryaplbot TryAPL Bot] is a [[wikipedia:Twitter bot|Twitter bot]] run by Rodrigo Girão Serrão using TryAPL icon. It responds to [[wikipedia:Twitter#Tweets|tweets]] that [[wikipedia:mention (blogging)|mention]] it. To use it, post a tweet that contains the bot's handle (<code>@tryaplbot</code>) and code in backticks, for example <code>`⍳3`</code>. Multiple such code sections can be included in a single message, and assignments made in earlier ones are preserved for the later ones. Since tweets do not support any type of formatting, the bot responds with an image of an APL [[session]] where the requested code has been entered, and the result is shown. It also includes a link to try the expression on [[#TryAPL.org|TryAPL.org]] and if the result is a single line that can fit in the tweet, it is included there too.<br />
<br />
The source code is available [https://github.com/RojerGS/TryAPL-Bot on GitHub].<br />
<br />
=== API ===<br />
<br />
Requests to TryAPL's backend consist of submitting a [[wikipedia:POST (HTTP)|POST]] request to https://tryapl.org/Exec containing a 4-element list <source lang=js inline>["state", size, "hash", "input"]</source> where the first three elements can use the placeholder values <source lang=js inline>""</source> or <source lang=js inline>0</source>. The server responds with a similar 4-element list <source lang=js inline>["state", size, "hash", ["lines", "of", "output"]]</source>. The first three elements are kept on the front-end and sent back with the next request, or cleared to restart with default state.<br />
<br />
If the output begins with a backspace character (U+08) then the actual output only begins after the second backspace character, and the text between the two backspace characters describes the role of the text. As 27 Jun 2021, only one tag has been implemented, <source lang=js inline>"\bhelp\b"</source> for which the text is the URL of help page requested by <source lang=apl inline>]Help</source><br />
<br />
==== XMLHttpRequest ====<br />
A minimal (no-state) TryAPL front-end can be implemented as follows using the [[wikipedia:XMLHttpRequest|XMLHttpRequest]] API:<br />
<source lang=js><br />
with(new XMLHttpRequest) {<br />
open("POST", "https://tryapl.org/Exec");<br />
setRequestHeader("Content-Type", "application/json;charset=utf-8");<br />
send(JSON.stringify([0, 0, 0, prompt()]));<br />
onload = (_ => alert(eval(responseText)[3].join("\n") + "\n"))<br />
}<br />
</source><br />
==== Fetch ====<br />
This is a function that uses the [[wikipedia:XMLHttpRequest#Fetch_alternative|Fetch]] API to send a request given as input a string code:<br />
<source lang=js><br />
async function executeAPL(code) {<br />
const res = await fetch("https://tryapl.org/Exec", {<br />
method: 'POST',<br />
headers: { 'Content-Type': 'application/json; charset=utf-8' },<br />
body: JSON.stringify(['', 0, '', code]),<br />
});<br />
const data = await res.json(); // data contains the server response<br />
return data[3]; // return the output of the function<br />
}<br />
<br />
// To call the function you must use an async/await statement.<br />
(async () => {<br />
let resultSum = await executeAPL(`2+2`);<br />
let reshape = (await executeAPL(`2 2⍴⍳${resultSum}`))<br />
.map(row => row.split` `.map(x => +x));<br />
let sumReduce = (await executeAPL(`+/ (↑⍣≡0∘⎕JSON) '${JSON.stringify(reshape)}'`))<br />
.map(row => row.split` `.map(x => +x));<br />
console.log(sumReduce);<br />
})();<br />
</source><br />
<br />
If you want to load a namespace containing some functions, you have to change state, size and hash variables. To have these parameters just go on https://tryapl.org/ [Developer Tools > Network]. Here, after typing on TryAPL <source lang="js" inline>increment ← 1∘+</source>, will appear a file named Exec: in the Response tab there will be a JSON containing the three values.<br />
<br />
<source lang="js"><br />
let state = 'c-ocK2UHbD6oBCo<$(l+5DX+5l%hycQBgoav5N>QHY|XESU^xIb|oSjO|?X0LNtOHO=4n-(R6#oE_My}-g`Iy<?ZtvR#CI(eCO`od3$GPXJ%hfzNIR8l+&V_owJ?9ysT%MiVq7d?&(<aep5a3uIjnR6YWUVt}B}AM3%f?-)R}8CL8ZJUK>n#e`9{2N>TADRVAooq^NXV9n<fpXmNIAVVFavQvRm#>iV;BdD^dfm2ul@(Lw9TT3@e{G3I#XPRhwP1nK)xFX{hj-u}gTt5WKyQhr}rzU)iJYpxrwzD`y5S9@;;T^-XrWSi>Pt7j&{QX6LlRMXzILF=P3%A=vHQb`o6&bd6wD6TUQ!+9*?5Rbk{KtJ@yfa0~JR3efv2+2snU<|=f$ofr#tg{RZ!*GniNa;^|WEsyA)RtQG??bGMdZ-UyG?3?opE9n;0PX$fF?S1yZkR9EGEQ>Mh|SRgEzt_C(FSc1f_4Z+dxRkz9U!m26C%(VT_9Vv8@fZbVGs1w=2GVQ5tbuU+8Dzs;%cnH25iJ;6krRsVjH$&2X<jM3T6Ir00(ghNAMUYa1mE=9k(zVi<#iDGJeMGN8gJ$Ux~F?hxIaN<Tnv_VlVdNFp6*#$8a1caSEq#24`^&=Wzj-a2Z!{4ZTnYO{w3T7)%V5HN&$6$+{snA@(8Ggga_+?S(toC-=%)C7;f{<2aw@tkevoab3XT^py3?xfLw<oukwumqnZa4|vKtKt9IM))?Nh4!I{45eP*Hf-sBU#SjDFEb~hYm;Hc5#L^yz8?@cTZQO-?Dri<tsDY($<QZ*Y4SNL2hC&s%!57{zLoiMEa32p4jfe7nq%Osm5gW-qp_3KFT$xAmQ+degh$8PnE=u-2=3yabl8;8bt8p(Be-~VI-vux4M!k9)EXtHOGcRj-;C{I+`}PM}AFS~E-KF2GUR3)_pStzx`!;Ck=O1u&)x5m?#b=r|Z_%<<>o#pe+J&|c3-8deQ$*)3UAuLU?9nr4?!61PmtMDf!@km+4vufVUAf9TPF1TpySTblui;+P!*le?u}fke+-TY)@Zr0)4qb`9K0Y=sK5IgD--Jp1`VSbGm^A3U<dnffCVw|&XlmN~=^uRf(Z|C+nL2Iyj8A9I8vfbr&qsVQa(CgVJ>Tv<d+z+jsEpUf-1_nMPr=K-|LyX^umAdc!OmT|^Z)pBQ{!<f{<-<<GONsjjdQ-*uzuURt$pr1-uz_Zj_q~Uto`{1n`;#x9XtK+k)p%LPn<e=^cU0j*v9F3|67(m`tSQhGxfiY{{TCxArt';<br />
let size = 2090;<br />
let hash = 'b#I;?EZD=8s=YfFKk=g-u;6Uc`dwiu3Val5Gt`%rAhCWd4~6Z_WwqIp<R`FEoA*lr*Z0=uC*HY#_2JbY';<br />
<br />
async function executeAPL(code) {<br />
const res = await fetch("https://tryapl.org/Exec", {<br />
method: 'POST',<br />
headers: { 'Content-Type': 'application/json; charset=utf-8' },<br />
body: JSON.stringify([state, size, hash, code]),<br />
});<br />
const data = await res.json();<br />
return data[3];<br />
}<br />
<br />
(async () => {<br />
let result = await executeAPL(`increment 27`);<br />
console.log(result);<br />
})();<br />
</source><br />
<br />
== In media ==<br />
=== Presentations ===<br />
TryAPL and its development history has been presented at [[Dyalog user meeting]]s and in a [[Dyalog webinar]]:<br />
<br />
* [[Brian Becker]]: [https://dyalog.tv/Dyalog12/?v=9AMj77tuDAg The Story of TryAPL.org] at [[Dyalog '12]]<br />
* Brian Becker and [[Adám Brudzewsky]]: [https://dyalog.tv/Dyalog17/?v=ddBjIkyebuY Try APL Online] at [[Dyalog '17]]<br />
* [[Richard Park]]: [https://dyalog.tv/Webinar/?v=w4t13pge4mw TryAPL - The Next Generation] webinar<br />
* [[Richard Park]]: [https://dyalog.tv/Webinar/?v=cBDmWY_a25Q Presenting TryAPL v3] webinar<br />
<br />
=== Hacker News ===<br />
<br />
TryAPL is frequently featured on [[wikipedia:Hacker News|Hacker News]]:<br />
<br />
* [https://news.ycombinator.com/item?id=4090097 June 10, 2012]<br />
* [https://news.ycombinator.com/item?id=6323136 Sept 3, 2013]<br />
* [https://news.ycombinator.com/item?id=9774875 June 24, 2015] (more than 20 comments)<br />
* [https://news.ycombinator.com/item?id=16505134 March 2, 2018]<br />
* [https://news.ycombinator.com/item?id=18134675 Oct 3, 2018]<br />
* [https://news.ycombinator.com/item?id=19270813 Feb 28, 2019]<br />
* [https://news.ycombinator.com/item?id=19508584 March 28, 2019]<br />
* [https://news.ycombinator.com/item?id=20632553 Aug 7, 2019]<br />
* [https://news.ycombinator.com/item?id=24442871 Sep 11, 2020]<br />
* [https://news.ycombinator.com/item?id=24818619 Oct 18, 2020]<br />
* [https://news.ycombinator.com/item?id=27460887 Jun 10, 2021] (more than 200 comments)<br />
<br />
On occasion, the server has been overwhelmed by the increased traffic, known as a [[wikipedia:hug of death|hug of death]].<br />
<br />
== Notes ==<br />
<references/><br />
{{APL community}}<br />
[[Category:Online resources]]</div>Master Quizhttps://aplwiki.com/index.php?title=TryAPL&diff=7865TryAPL2021-12-27T15:39:40Z<p>Master Quiz: /* API */</p>
<hr />
<div>[[File:TryAPL logo.png|thumb|right|TryAPL's logo.]]<br />
<br />
'''TryAPL''' is online service that allows trying out a subset of [[Dyalog APL]]. The back-end is a [https://github.com/Dyalog/Jarvis Jarvis] server that uses [[Adám Brudzewsky]]'s [https://github.com/abrudz/dyalog-safe-exec Safe Execute] to provide [[wikipedia:sandbox (computer_security)|sandbox]]ing. The source code for TryAPL was released under the [[wikipedia:MIT License|MIT License]] on 15 July 2021.<ref>[[Dyalog Ltd.]] [https://github.com/Dyalog/TryAPL TryAPL]. GitHub.</ref><br />
<br />
== Interfaces ==<br />
Since version 3.0, TryAPL's [[wikipedia:front end and back end|front end and back end]] are completely separate, with a very simple [[#API|API]], and no [[wikipedia:server-side|server-side]] state. This has enabled the [[community]] to develop their own interfaces to the back-end.<br />
<br />
=== TryAPL.org ===<br />
[https://tryapl.org TryAPL.org] is the original and main web interface for the back-end:<br />
[[File:TryAPL|center|thumb|TryAPL's web inferface]]<br />
<br />
The source code is available [https://github.com/razetime/APLgolf/ on Github].<br />
<br />
=== TryAPL Mini ===<br />
[https://janiczek.github.io/tryapl-elm/ TryAPL Mini] is an alternative web interface written in [[wikipedia:Elm (programming language)|Elm]], focusing on exploration of [[primitive]]s. Half of the screen is used to display information about whichever [[glyph]] the user last hovered their mouse over on the built-in [[Typing_glyphs#Web|language bar]].<br />
<br />
The source code is available [https://github.com/janiczek/tryapl-elm/ on GitHub].<br />
<br />
=== APLgolf ===<br />
[https://razetime.github.io/APLgolf/ APLgolf] is a website that assists in composing answers for [[code golf|Code Golf]] [[wikipedia:Stack Exchange|Stack Exchange]].<br />
<br />
The source code is available [https://github.com/razetime/APLgolf/ on GitHub].<br />
<br />
=== Bookmarklet ===<br />
<br />
Creating a [[wikipedia:bookmarklet|bookmarklet]] with the following URL, will enable clicking on the bookmark to pop up a box wherein one can enter an APL expression, which will then be executed, and the result shown in another pop-up:<br />
<source lang=js><br />
javascript:((()=>{with(new XMLHttpRequest){open(`POST`,`https://tryapl.org/Exec`);setRequestHeader(`Content-Type`,`application/json;charset=utf-8`);send(JSON.stringify([0,0,0,prompt()]));onload=(_=>alert(eval(responseText)[3].join`\n`+`\n`))}})())</source><br />
<br />
=== Chat box exec ===<br />
[https://gist.github.com/razetime/8d0be74e104ac54b1e55d57bec8c2156 Chat box exec] is a [[wikipedia:userscript|userscript]] that adds an [[Execute]] button (<kbd>⍎</kbd>) to right of the message input area in [[wikipedia:Stack Exchange|Stack Exchange]]'s chat rooms. Clicking this button, 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>, executes the first line of the text that is currently in the message input area, and appends the result to the area, while also formatting the message to be rendered in monospace font. One can then hit the <kbd>send</kbd> button or press <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 [https://github.com/razetime/userscripts the 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].<br />
<br />
=== Chatbot ===<br />
[[wikipedia:Stack Exchange|Stack Exchange]] moderator "hyper-neutrino" hosts a [[wikipedia:chatbot|chatbot]] using TryAPL's name and icon, active in two Stack Exchange chat rooms; the [[APL Orchard]] and the Stack Exchange's [[sandbox (software_development)|sandbox]] chat room. To use it, write [[APL Orchard#inline|inline code]] or a [[APL Orchard#Multi-line messages|multi-line code block]], and prepend <source lang=apl inline>⎕←</source> or <source lang=apl inline>⋄</source> to lines you wish to run, in any of the two chat rooms:<ref>For details, see [https://codegolf.stackexchange.com/users/75949 the chat bot's profile].</ref><br />
<br />
* [https://apl.chat APL Orchard]<br />
* [https://chat.stackexchange.com/rooms/1/sandbox Sandbox]<br />
<br />
The source code is available [https://github.com/hyper-neutrino/apl-bot on GitHub].<br />
<br />
=== Twitter bot ===<br />
[https://twitter.com/tryaplbot TryAPL Bot] is a [[wikipedia:Twitter bot|Twitter bot]] run by Rodrigo Girão Serrão using TryAPL icon. It responds to [[wikipedia:Twitter#Tweets|tweets]] that [[wikipedia:mention (blogging)|mention]] it. To use it, post a tweet that contains the bot's handle (<code>@tryaplbot</code>) and code in backticks, for example <code>`⍳3`</code>. Multiple such code sections can be included in a single message, and assignments made in earlier ones are preserved for the later ones. Since tweets do not support any type of formatting, the bot responds with an image of an APL [[session]] where the requested code has been entered, and the result is shown. It also includes a link to try the expression on [[#TryAPL.org|TryAPL.org]] and if the result is a single line that can fit in the tweet, it is included there too.<br />
<br />
The source code is available [https://github.com/RojerGS/TryAPL-Bot on GitHub].<br />
<br />
=== API ===<br />
<br />
Requests to TryAPL's backend consist of submitting a [[wikipedia:POST (HTTP)|POST]] request to https://tryapl.org/Exec containing a 4-element list <source lang=js inline>["state", size, "hash", "input"]</source> where the first three elements can use the placeholder values <source lang=js inline>""</source> or <source lang=js inline>0</source>. The server responds with a similar 4-element list <source lang=js inline>["state", size, "hash", ["lines", "of", "output"]]</source>. The first three elements are kept on the front-end and sent back with the next request, or cleared to restart with default state.<br />
<br />
If the output begins with a backspace character (U+08) then the actual output only begins after the second backspace character, and the text between the two backspace characters describes the role of the text. As 27 Jun 2021, only one tag has been implemented, <source lang=js inline>"\bhelp\b"</source> for which the text is the URL of help page requested by <source lang=apl inline>]Help</source><br />
<br />
A minimal (no-state) TryAPL front-end can be implemented as follows:<br />
<source lang=js><br />
with(new XMLHttpRequest) {<br />
open("POST", "https://tryapl.org/Exec");<br />
setRequestHeader("Content-Type", "application/json;charset=utf-8");<br />
send(JSON.stringify([0, 0, 0, prompt()]));<br />
onload = (_ => alert(eval(responseText)[3].join("\n") + "\n"))<br />
}<br />
</source><br />
<br />
This is a function that uses Fetch API to send a request given as input a string code.<br />
<source lang=js><br />
async function evaluateAPL(code) {<br />
const res = await fetch("https://tryapl.org/Exec", {<br />
method: 'POST',<br />
headers: { 'Content-Type': 'application/json; charset=utf-8' },<br />
body: JSON.stringify(['', 0, '', code]),<br />
});<br />
const data = await res.json(); // data contains the server response<br />
return data[3]; // return the output of the function<br />
}<br />
<br />
// To call the function you must use an async/await statement.<br />
(async () => {<br />
let resultSum = await evaluateAPL(`2+2`);<br />
let reshape = (await evaluateAPL(`2 2⍴⍳${resultSum}`))<br />
.map(row => row.split` `.map(x => +x));<br />
let sumReduce = (await evaluateAPL(`+/ (↑⍣≡0∘⎕JSON) '${JSON.stringify(reshape)}'`))<br />
.map(row => row.split` `.map(x => +x));<br />
console.log(sumReduce);<br />
})();<br />
</source><br />
<br />
If you want to load a namespace containing some functions, you have to change state, size and hash variables. To have these parameters just go on https://tryapl.org/ [Developer Tools > Network]. Here, after typing on TryAPL <source lang="js" inline>increment ← 1∘+</source>, will appear a file named Exec: in the Response tab there will be a JSON containing the three values.<br />
<br />
<source lang="js"><br />
let state = 'c-ocK2UHbD6oBCo<$(l+5DX+5l%hycQBgoav5N>QHY|XESU^xIb|oSjO|?X0LNtOHO=4n-(R6#oE_My}-g`Iy<?ZtvR#CI(eCO`od3$GPXJ%hfzNIR8l+&V_owJ?9ysT%MiVq7d?&(<aep5a3uIjnR6YWUVt}B}AM3%f?-)R}8CL8ZJUK>n#e`9{2N>TADRVAooq^NXV9n<fpXmNIAVVFavQvRm#>iV;BdD^dfm2ul@(Lw9TT3@e{G3I#XPRhwP1nK)xFX{hj-u}gTt5WKyQhr}rzU)iJYpxrwzD`y5S9@;;T^-XrWSi>Pt7j&{QX6LlRMXzILF=P3%A=vHQb`o6&bd6wD6TUQ!+9*?5Rbk{KtJ@yfa0~JR3efv2+2snU<|=f$ofr#tg{RZ!*GniNa;^|WEsyA)RtQG??bGMdZ-UyG?3?opE9n;0PX$fF?S1yZkR9EGEQ>Mh|SRgEzt_C(FSc1f_4Z+dxRkz9U!m26C%(VT_9Vv8@fZbVGs1w=2GVQ5tbuU+8Dzs;%cnH25iJ;6krRsVjH$&2X<jM3T6Ir00(ghNAMUYa1mE=9k(zVi<#iDGJeMGN8gJ$Ux~F?hxIaN<Tnv_VlVdNFp6*#$8a1caSEq#24`^&=Wzj-a2Z!{4ZTnYO{w3T7)%V5HN&$6$+{snA@(8Ggga_+?S(toC-=%)C7;f{<2aw@tkevoab3XT^py3?xfLw<oukwumqnZa4|vKtKt9IM))?Nh4!I{45eP*Hf-sBU#SjDFEb~hYm;Hc5#L^yz8?@cTZQO-?Dri<tsDY($<QZ*Y4SNL2hC&s%!57{zLoiMEa32p4jfe7nq%Osm5gW-qp_3KFT$xAmQ+degh$8PnE=u-2=3yabl8;8bt8p(Be-~VI-vux4M!k9)EXtHOGcRj-;C{I+`}PM}AFS~E-KF2GUR3)_pStzx`!;Ck=O1u&)x5m?#b=r|Z_%<<>o#pe+J&|c3-8deQ$*)3UAuLU?9nr4?!61PmtMDf!@km+4vufVUAf9TPF1TpySTblui;+P!*le?u}fke+-TY)@Zr0)4qb`9K0Y=sK5IgD--Jp1`VSbGm^A3U<dnffCVw|&XlmN~=^uRf(Z|C+nL2Iyj8A9I8vfbr&qsVQa(CgVJ>Tv<d+z+jsEpUf-1_nMPr=K-|LyX^umAdc!OmT|^Z)pBQ{!<f{<-<<GONsjjdQ-*uzuURt$pr1-uz_Zj_q~Uto`{1n`;#x9XtK+k)p%LPn<e=^cU0j*v9F3|67(m`tSQhGxfiY{{TCxArt';<br />
let size = 2090;<br />
let hash = 'b#I;?EZD=8s=YfFKk=g-u;6Uc`dwiu3Val5Gt`%rAhCWd4~6Z_WwqIp<R`FEoA*lr*Z0=uC*HY#_2JbY';<br />
<br />
async function evaluateAPL(code) {<br />
const res = await fetch("https://tryapl.org/Exec", {<br />
method: 'POST',<br />
headers: { 'Content-Type': 'application/json; charset=utf-8' },<br />
body: JSON.stringify([state, size, hash, code]),<br />
});<br />
const data = await res.json();<br />
return data[3];<br />
}<br />
<br />
(async () => {<br />
let result = await evaluateAPL(`increment 27`);<br />
console.log(result);<br />
})();<br />
</source><br />
<br />
== In media ==<br />
=== Presentations ===<br />
TryAPL and its development history has been presented at [[Dyalog user meeting]]s and in a [[Dyalog webinar]]:<br />
<br />
* [[Brian Becker]]: [https://dyalog.tv/Dyalog12/?v=9AMj77tuDAg The Story of TryAPL.org] at [[Dyalog '12]]<br />
* Brian Becker and [[Adám Brudzewsky]]: [https://dyalog.tv/Dyalog17/?v=ddBjIkyebuY Try APL Online] at [[Dyalog '17]]<br />
* [[Richard Park]]: [https://dyalog.tv/Webinar/?v=w4t13pge4mw TryAPL - The Next Generation] webinar<br />
* [[Richard Park]]: [https://dyalog.tv/Webinar/?v=cBDmWY_a25Q Presenting TryAPL v3] webinar<br />
<br />
=== Hacker News ===<br />
<br />
TryAPL is frequently featured on [[wikipedia:Hacker News|Hacker News]]:<br />
<br />
* [https://news.ycombinator.com/item?id=4090097 June 10, 2012]<br />
* [https://news.ycombinator.com/item?id=6323136 Sept 3, 2013]<br />
* [https://news.ycombinator.com/item?id=9774875 June 24, 2015] (more than 20 comments)<br />
* [https://news.ycombinator.com/item?id=16505134 March 2, 2018]<br />
* [https://news.ycombinator.com/item?id=18134675 Oct 3, 2018]<br />
* [https://news.ycombinator.com/item?id=19270813 Feb 28, 2019]<br />
* [https://news.ycombinator.com/item?id=19508584 March 28, 2019]<br />
* [https://news.ycombinator.com/item?id=20632553 Aug 7, 2019]<br />
* [https://news.ycombinator.com/item?id=24442871 Sep 11, 2020]<br />
* [https://news.ycombinator.com/item?id=24818619 Oct 18, 2020]<br />
* [https://news.ycombinator.com/item?id=27460887 Jun 10, 2021] (more than 200 comments)<br />
<br />
On occasion, the server has been overwhelmed by the increased traffic, known as a [[wikipedia:hug of death|hug of death]].<br />
<br />
== Notes ==<br />
<references/><br />
{{APL community}}<br />
[[Category:Online resources]]</div>Master Quizhttps://aplwiki.com/index.php?title=Talk:Jobs&diff=7380Talk:Jobs2021-09-27T16:11:48Z<p>Master Quiz: </p>
<hr />
<div>{{#css:[rel="discussion"],#ca-addsection a{visibility:hidden}[rel="discussion"]:before{visibility:visible;content:"Job listings";position:absolute}.mw-redirectedfrom{display:none}#ca-addsection a:before{visibility:visible;content:"Add item";position:absolute} }}{{DISPLAYTITLE:Job listings}}<br />
This page is open for declarations of ability to provide APL consultancy, availability for hire, and job openings.<br />
<br />
* '''[{{fullurl:{{TALKPAGENAME}}|action=edit&section=new&preloadtitle=Needed:%20%5Bshort%20description%20here%5D%20(added:%20{{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY2}})}} Click here to add a new listing for an open job position.]'''<br />
<br />
* '''[{{fullurl:{{TALKPAGENAME}}|action=edit&section=new&preloadtitle=Available:%20%5Bshort%20description%20here%5D%20(added:%20{{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY2}})}} Click here to add a new listing advertising an available programmer.]'''<br />
<br />
Note that this page is not for communication about the listing, so make sure to include contact information. <br />
<br />
While this page is monitored and moderated, as per the [[APL_Wiki:general disclaimer|general disclaimer]]s, APL Wiki takes no responsibility for its content, nor is any listing here endorsed by APL Wiki, its contributors, or its sponsors.<br />
__TOC__<br />
== Needed: Swedish-speaking Dyalog APL consultants (added: 2021-03-04) ==<br />
<br />
Currently looking for [[Dyalog APL]] consultants for a full time project at a large Swedish medtech company that already has about 6 APL programmers in their team. One of the requirements is understanding basic Swedish, but remote work is fine, so you don't have to be located in Sweden. The salary is highly competitive.<br />
<br />
If you're interested, or know someone who might be, please [mailto:claes@developersbay.se email Claes Stenborg].<br />
<br />
== Careers at Dyalog Ltd. (added: 2021-03-04) ==<br />
<br />
[[Dyalog Ltd.|We]] do not currently have any open positions. However, if you think you might have the right skills for roles like the ones that we have most recently filled (described on [https://www.dyalog.com/careers.htm our careers page]), please forward your resume to [mailto:careers@dyalog.com careers@dyalog.com]. We may need to grow [https://www.dyalog.com/meet-team-dyalog.htm the team] again at short notice, and it would be good to know you are out there!<br />
<br />
== Available: APL programmer with extensive experience (added: 2021-03-04) ==<br />
<br />
I have been interested in APL for 42 years, and have been a programmer for 35 years, using NARS2000 APL for the last decade and half or so.<br />
<br />
I'm in Baltimore, Maryland, USA, and I'm not really able to travel. Since our department imploded, I haven't been able to find a job in my field because the languages I know, no one hires for, and the ones they are looking for, I don't have job experience in. No one wants to take me on as entry level, because I have too much experience, so I have been working as a math tutor since the summer of '19. I do, however, know APL. For example, I solved 121 of the project Euler problems using it.<br />
<br />
Contact [https://www.linkedin.com/in/michael-turniansky-057604177/ me on LinkedIn] if you have an opening for me.<br />
<br />
== Needed: APL Developer with strong working knowledge of APL (added: 2021-03-08) ==<br />
<br />
The APL Developer works with a group of associates within the Technical Operations and Product Engineering teams who advise InvestCloud financial management clients on industry best practices related to trading proposal, reporting and workflow while also providing daily support for existing customized solutions. Under general supervision, our developers follow standard practices and procedures to analyze, modify, test and support application software systems. The ideal candidate is a self-starter, motivated and brings enthusiasm to his/her work with "can do" attitude to join our growing team. This role will expose you to a wide variety of technologies and you can expect to be helping to provide solutions to complex problems.<br />
<br />
[https://recruiting.ultipro.com/TEG1001TEGR/JobBoard/ad4204e8-c7f7-47f1-8177-c9f64730dccc/OpportunityDetail?opportunityId=4c42bc41-0d11-4a5f-a3d0-71e7934c9909 Details…]<br />
<br />
== Available: workshops in APL (added: 2021-04-03) ==<br />
<br />
Despite working for [[Dyalog Ltd.]] almost full-time, Rodrigo also organises and promotes academic workshops on subjects related to mathematics and programming. Some of those workshops are a great way of introducing people to APL. Feel free to take a look at [https://mathspp.com/education/workshops some past workshops Rodrigo has led] if you need inspiration or [https://mathspp.com/about#contacts contact him] if you would like Rodrigo to organise one of these workshops for you/a group you represent.<br />
<br />
== Needed: APL Developer (added: 2021-06-07) ==<br />
<br />
Hi,<br />
<br />
This is Vinny Sanchez from Genzeon Corporation.<br />
<br />
We are looking to fill a APL developer with one of our Direct clients. If you are interested, please share your updated resume ASAP.<br />
<br />
Job Title: APL developer<br />
Location: Remote/ Occasional travel to Philadelphia, PA for meetings<br />
Duration: 12–24 Months contract<br />
<br />
Job Description:<br />
Searching for an APL developer, mostly maintenance/support but some new coding for enhancements, etc.. <br />
<br />
The client runs an older COLI/BOLI system (SOLAR) that still pays out on policies bought during the 80’s and 90’s. COLI/BOLI is corporate/bank owned life insurance. Companies/banks/etc bought life insurance policies on their employees and customers as long-term investments. They don’t sell them anymore, but they must pay out on them until they all expire. The solar system manages all those policies and was written in APL. It scrapes the social security database every night to see if any policy holder names died the day before and then processes the policy payout. <br />
<br />
Regards,<br />
<br />
Vinny Sanchez | Sr Technical Recruiter <br />
Direct: 484-713-8976<br />
Email: Vinny.Sanchez@genzeon.com<br />
<br />
== Needed: Video editing volunteer (added: 2021-07-05) ==<br />
<br />
[[BAA]] needs help editing the recordings of [[BAA Webinar|their webinars]] so they may be published on YouTube. If you have even basic video editing skills and are interested in watching these recordings anyway, then this may well be a good task for you. '''Note that this is an unpaid volunteer job.'''<br />
<br />
Contact: [mailto:editor@britishaplassociation.org editor@britishaplassociation.org]</div>Master Quizhttps://aplwiki.com/index.php?title=APL_Problem_Solving_Competition&diff=7232APL Problem Solving Competition2021-08-21T12:11:28Z<p>Master Quiz: </p>
<hr />
<div>The '''APL Problem Solving Competition''' is a yearly contest hosted by [[Dyalog Ltd.]] During the [[Dyalog user meeting]] that follows shortly after the competition closes, the winners are announced, followed by presentations by the grand prize winner and the professional prize winner.<br />
<br />
=== 2009 ===<br />
[https://www.dyalog.com/news/2/420/Dyalog-Announces-Winners-of-Worldwide-Computer-Programming-Contest.htm Announcement and about the grand prize winner]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Ronald Chan || Auckland, New Zealand<br />
|-<br />
|'''2nd Place'''|| Chris King || Brown University, Rhode Island USA<br />
|-<br />
|'''3rd Place'''|| Maks Verver || The Netherlands<br />
|-<br />
|}<br />
<br />
=== 2010 ===<br />
[https://www.dyalog.com/news/34/420/Meet-the-winners-of-the-World-Wide-Programming-Competition-2010.htm About the winners]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Ryan Tarpine || Brown University, Providence, Rhode Island, USA.<br />
|-<br />
|'''2nd Place'''|| Mstislav Elagin || Humboldt-Universität zu Berlin, Germany<br />
|-<br />
|'''3rd Place'''|| Joel Hough || Salt Lake Community College, Kaysville Utah, USA<br />
|-<br />
|'''Special Effort'''||Alexander Ivanov || Moscow Institute for Physical Research<br />
|}<br />
<br />
=== 2011 ===<br />
[https://www.dyalog.com/news/59/420/Programming-Contest-Winners.htm About the winners]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Joel Hough || The University of Utah, USA<br />
|-<br />
|'''2nd Place'''|| Yanqing Chen || Stony Brook University, New York, USA<br />
|-<br />
|'''3rd Place'''|| Elliot Way || Binghamton University, New York, USA<br />
|-<br />
|}<br />
<br />
=== 2012 ===<br />
[https://www.dyalog.com/news/72/420/4th-World-Wide-APL-Programming-Contest-Winner-Announced.htm Announcement and about the winner]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Hayato Hashimoto || Kyoto University, Japan<br />
|}<br />
<br />
=== 2013 ===<br />
[https://www.dyalog.com/news/83/420/2013-APL-Programming-Contest-winners.htm Announcement and about the winners]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Yanqing Chen|| Stony Brook University, USA<br />
|-<br />
|'''2nd Place'''|| Maks Verver || The Netherlands<br />
|-<br />
|'''3rd Place'''|| Chao Xu || University of Illinois, Urbana-Champaign, USA<br />
|-<br />
|}<br />
<br />
=== 2014 ===<br />
[https://www.dyalog.com/news/93/456/Winners-Announced-for-the-2014-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/94/420/2014-APL-Programming-Contest-Winners.htm About the winners]<br />
This was the first year in which a prize was offered to non-student entrants.<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Emil Bremer Orloff || Aarhus University, Denmark<br />
|-<br />
|'''2nd Place'''|| Seán Kelleher || University College Cork, Ireland<br />
|-<br />
|'''3rd Place'''|| Chao Xu || University of Illinois, Urbana-Champaign, U.S.A<br />
|-<br />
|'''Professional Prize'''|| Iryna Pashenkovska || SimCorp Ukraine<br />
|-<br />
|rowspan=2|'''Honourable mention'''||Jan-Pieter Jacobs || Universiteit Antwerpen, Belgium<br />
|-<br />
| Christopher Zhang || State University of New York at Binghamton, U.S.A.<br />
|}<br />
<br />
=== 2015 ===<br />
[https://www.dyalog.com/news/101/456/Winners-Announced-for-the-2015-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/102/420/2015-APL-Programming-Contest-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Arianna Locatelli || Liceo Classico S. M. Legnani, Saronno, Italy<br />
|-<br />
|'''2nd Place'''|| Joshua (Josh) David || University of Scranton, USA<br />
|-<br />
|'''3rd Place'''|| Dragana Babić || University of Novi Sad, Serbia<br />
|-<br />
|'''Professional Prize'''|| Roberto Szabó<br />
|-<br />
| rowspan=2 | '''Honourable mention''' || Alexander Kuhnle || Cambridge University, U.K.<br />
|-<br />
| Luyang Du || State University of New York at Binghamton, U.S.A.<br />
|}<br />
<br />
=== 2016 ===<br />
[https://www.dyalog.com/news/110/456/Winners-Announced-for-the-2016-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/112/420/2016-APL-Programming-Contest-Winners.htm About the winners]<br />
<br />
This round of the competition offered 3 grand prizes, one each in the subject domains of finance, general computing and bioinformatics.<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize (Finance)'''|| Janos (Zack) Batik || University of Cape Town, South Africa<br />
|-<br />
|'''Grand Prize (General Computing)'''|| Joshua (Josh) David || University of Scranton, USA<br />
|-<br />
|'''Grand Prize (Bioinformatics)'''|| Marinus Oosters || Universiteit Utrecht, The Netherlands<br />
|-<br />
|'''Professional Prize'''|| Mike Powell<br />
|-<br />
|'''Runner-up (Finance)''' || Rafael Rodrigues || Fundação Getulio Vargas, Brazil<br />
|-<br />
|'''Runner-up (General Computing)''' || Imaculate Mosha || University of Cape Town, South Africa<br />
|-<br />
|'''Runner-up (Bioinformatics)''' || Louis de Forcrand || Ecole Moser, Switzerland<br />
|}<br />
<br />
=== 2017 ===<br />
[https://www.dyalog.com/news/118/456/Winners-Announced-for-the-2017-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/119/420/2017-APL-Programming-Contest-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Kostas Blekos || Panepistimion Patron, Greece<br />
|-<br />
|'''2nd Place'''|| Douglas Patz || Agile Learning Center, New York City, USA<br />
|-<br />
|'''3rd Place'''|| Zachary Taylor || Maryville High School, USA<br />
|-<br />
|'''Professional Prize'''|| Mike Powell<br />
|-<br />
|rowspan=5|'''Phase I'''||Armando Cruz || Universidad Nacional Autónoma de México, Mexico<br />
|-<br />
|Ivan Demianchuk || National Taras Shevchenko University of Kyiv, Ukraine<br />
|-<br />
|Yash Garg || Indian Institute of Technology, Delhi, India<br />
|-<br />
|Arna Ghosh || Indian Institute of Technology, Kharagpur, India<br />
|-<br />
|Akarsh Ramesh Khatagalli || Visvesvaraya Technological University, India<br />
|-<br />
|rowspan=10|'''Phase I'''||Aiken Cairncross || University of Oxford, UK<br />
|-<br />
|Yu-Chi Chiang || National Central University, Taiwan<br />
|-<br />
|Anthony Cipriano || Gustav-Stresemann Gymnasium, Germany<br />
|-<br />
|Ivan Demianchuk || National Taras Shevchenko University of Kyiv, Ukraine<br />
|-<br />
|Tripti Garg || NorthCap University, India<br />
|-<br />
|Arna Ghosh || Indian Institute of Technology, Kharagpur, India<br />
|-<br />
|Bertil Johnson || University of Kentucky, USA<br />
|-<br />
|Mohammed Malik || Copenhagen International School, Denmark<br />
|-<br />
|Douglas Patz || Agile Learning Center, New York, USA<br />
|-<br />
|Zachary Taylor || Maryville High School, USA<br />
|}<br />
<br />
=== 2018 ===<br />
[https://www.dyalog.com/news/128/456/Winners-Announced-for-the-2018-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/129/420/2018-APL-Problem-Solving-Competition-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Alve Björk || Uppsala University, Sweden<br />
|-<br />
|'''2nd Place'''|| Lynn Van Hauwe || University of Antwerp, Belgium<br />
|-<br />
|'''3rd Place'''|| Rafael Rodrigues Rocha de Melo || Kyoto University, Japan<br />
|-<br />
|'''Professional Prize'''||Tiziano Berghi || SimCorp Italiana<br />
|-<br />
|rowspan=5|'''Phase II'''|| Dinesh Poudel || Jaya Multiple Campus, Nepal<br />
|-<br />
|Douglas Patz || Agile Learning Center, New York, U.S.A.<br />
|-<br />
|Joe Robertson || St. Peter's High School, Gloucester, U.K.<br />
|-<br />
|K C Unesh || Kathmand University, Nepal<br />
|-<br />
|P R Vaidyanathan || Indian Institute of Technology Gandhinagar, India<br />
|-<br />
|rowspan=10|'''Phase I'''||Alejandra González || Universidad Technológica Nacional – Instituto Nacional Superior del Profesorado Técnico, Argentina<br />
|-<br />
|Dimitri Lozeve || University of Oxford, U.K.<br />
|-<br />
|Dinesh Poudel || Jaya Multiple Campus, Nepal<br />
|-<br />
|Douglas Patz || Agile Learning Center, New York, U.S.A.<br />
|-<br />
|Du Xi || Australian National University, Australia<br />
|-<br />
|Lynn Van Hauwe || University of Antwerp, Belgium<br />
|-<br />
|Mohammed Malik || Turku International School, Finland<br />
|-<br />
|P R Vaidyanathan || Indian Institute of Technology Gandhinagar, India<br />
|-<br />
|Rafael Rodrigues Rocha de Melo || Kyoto University, Japan<br />
|-<br />
|K C Unesh || Kathmand University, Nepal<br />
|}<br />
==== Published solutions ====<br />
* rak1507: [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2018/Phase%201.dyalog Phase 1]<br />
<br />
=== 2019 ===<br />
<br />
[https://www.dyalog.com/news/134/420/2019-APL-Problem-Solving-Competition-Winners.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/136/420/2019-APL-Problem-Solving-Competition-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Jamin Wu || Monash University, Australia<br />
|-<br />
|'''2nd Place'''|| Rasmus Précenth || Uppsala University, Sweden<br />
|-<br />
|'''3rd Place'''|| Douglas Patz || Agile Learning Center, New York City, USA<br />
|-<br />
|'''Professional Prize'''|| Torsten Grust || University of Tübingen, Germany<br />
|-<br />
|rowspan=5|'''Phase II'''|| Fredrik Mattisson || Uppsala University, Sweden<br />
|-<br />
|Joe Robertson || Durham University, U.K.<br />
|-<br />
|Louis de Forcrand || Geneva University, Switzerland<br />
|-<br />
|P R Vaidyanathan || Indian Institute of Technology Gandhinagar, India<br />
|-<br />
|Rafael Rodrigues Rocha de Melo || Kyoto University, Japan<br />
|-<br />
|rowspan=10|'''Phase I'''||David Cao || University of California: San Diego, U.S.A.<br />
|-<br />
|Douglas Patz || Agile Learning Center, New York, U.S.A.<br />
|-<br />
|Dzintars Klušs || Riga State Gynmasium No. 1, Latvia<br />
|-<br />
|Fredrik Mattisson || Uppsala University, Sweden<br />
|-<br />
|Louis de Forcrand || Geneva University, Switzerland<br />
|-<br />
|Maksim Podkorytov || Florida State University, Florida, U.S.A.<br />
|-<br />
|Mohammed Malik || Turku International School, Finland<br />
|-<br />
|P R Vaidyanathan || Indian Institute of Technology Gandhinagar, India<br />
|-<br />
|Rasmus Précenth || Uppsala University, Sweden<br />
|-<br />
|Zoe Kane || Greenville Technical College, South Carolina, U.S.A.<br />
|}<br />
==== Published solutions ====<br />
* rak1507: [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2019/Phase%201.dyalog Phase 1]<br />
<br />
=== 2020 ===<br />
[https://www.dyalog.com/news/142/420/2020-APL-Problem-Solving-Competition-Winners.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/143/420/Meet-The-2020-APL-Problem-Solving-Competition-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Andrii Makukha || University of Hong Kong, China<br />
|-<br />
|'''2nd Place'''|| Dzintars Klušs || Riga State Gymnasium No. 1, Latvia<br />
|-<br />
|'''3rd Place'''|| Joshua King || University of New South Wales, Australia<br />
|-<br />
|'''Professional Prize'''|| Woosuk Kwak || South Korea<br />
|-<br />
|rowspan=5|'''Phase II'''|| Brendan King || Rose-Hulman Institute of Technology, Indiana, U.S.A.<br />
|-<br />
| Federico Landonio || Liceo Scientifico GB Grassi Saronno, Italy<br />
|-<br />
| Iiro Tapio Rastas || University of Turku, Finland<br />
|-<br />
| Louis de Forcrand || Geneva University, Switzerland<br />
|-<br />
| Zoe Kane || Greenville Technical College, South Carolina, U.S.A.<br />
|-<br />
|rowspan=10|'''Phase I'''|| Chiang Yu-Chi || National Central University, Taiwan<br />
|-<br />
| Dzintars Klušs || Riga State Gymnasium No. 1, Latvia<br />
|-<br />
| Federico Landonio || Liceo Scientifico GB Grassi Saronno, Italy<br />
|-<br />
| Joel Niemelä || home schooling, Texas, U.S.A.<br />
|-<br />
| Joshua King || University of New South Wales, Australia<br />
|-<br />
| Maksim Podkorytov || Florida State University, Florida, U.S.A.<br />
|-<br />
| Mattia Borgo || University of Padua, Italy<br />
|-<br />
| Mohammed Malik || University of Pavia, Italy<br />
|-<br />
| Rafael Rodrigues Rocha de Melo || Kyoto University, Japan<br />
|-<br />
| Zoe Kane || Greenville Technical College, South Carolina, U.S.A.<br />
|-<br />
|}<br />
==== Published solutions ====<br />
* rak1507: [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2020/Phase%201.dyalog Phase 1], [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2020/Phase%202.dyalog Phase 2]<br />
<br />
=== 2021 ===<br />
The 2021 round began on February 21 and closed on July 30.<ref>[[Dyalog Ltd.]] [https://www.dyalog.com/news/145/420/2021-APL-Problem-Solving-Competition-Announced-by-Dyalog-Ltd.htm 2021 APL Problem Solving Competition Announced by Dyalog Ltd]. News about Dyalog. Feb 12, 2021.</ref><br />
==== Published solutions ====<br />
* (anonymous): [https://tio.run/#%23JU89S8NAGN7zK7IlIUkvd7ZVhy46OLi5FoeC4FLwVmlcHEpy9qDiEEdJDXbrUMRS6NL8k/ePxOe9LsfxPt8TPU0fnifTp8eu0zKj@XJG8/cwJbuP8DmuyczJ/r54@tJhi0IcNyoVZHcykQnZtaLyS7SVuzHvArwc@ibMfNX3hxmZ5rg5gxmZOvL0OfCQih@hRoKKTypMLJIwFtJXvuKDLaMI1GTcG9zT4uDpISerPObQ4CoYcQ4MJD5bCILbAACaOPEuuAPD1J4enIKM5EG0MKr9Y1JZY9gHjJOx5ASUOgkz9sudtO@k1VvKhdoq6jtpW@HxNKYsyayA9GaoglZrlu5z18u8kv12Jop5dgtVWbvbisoGB0@j0RJrytrZyiwDpzA85eY66Lp/ Phase 1]<br />
* dzaima: [https://dzaima.github.io/paste/#0LZC9TsMwFIX3PEU22yStY1PYssDAwNY3qMTCC7CkXQBFiRsjKoTSEdJWZOuAUCKkLvGb3CfhuGXxzzlH9373cpUkro6k66hsBBWGijW7uWYB2e852VZF0MluyWyCjFP@lqRkfxEaw/0RcmjJPOK1gBQHfOK6Ya8jqpdKoKRtXY0jyOjl/e7@gfJXRctnxDmZJnadIPNE1YHPqNxSZWCcjS@EnCFItk9SfqQwAEMH37/8kBqNe/xTdsUA/MWmt1NG5SckiV64MAVEtgjgyswfOpU8kipUZEuPHUfSVwR8sT6ikN35OaoDBGREMB9B4kmoJ@FlQmY37M@9la8EhqkKqeG3KNKr2G8p1h7N1XokT6i@FPaUr7A75a/q8L@qDVfpCRfTNz79Bw#APL Phase 1]<br />
* LdBeth: [https://github.com/LdBeth/aplcomp2021 Phase 1]<br />
* Mehdi Zribi: [https://github.com/Masterquiz/APL-Problem-Solving-Competition/tree/main/2021/Phase1 Phase 1], [https://github.com/Masterquiz/APL-Problem-Solving-Competition/tree/main/2021/Phase2 Phase 2]<br />
* rak1507: [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2021/Phase%201.dyalog Phase 1], [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2021/Phase%202.dyalog Phase 2]<br />
* [[User:Razetime|Razetime]]: [https://github.com/razetime/APLPSC21/tree/master/Phase-1 Phase 1], [https://github.com/razetime/APLPSC21/tree/master/Phase-2 Phase 2]<br />
<br />
== External links ==<br />
* [https://www.dyalog.com/student-competition.htm Dyalog]<br />
<br />
* [https://www.dyalogaplcompetition.com/ Competition website]<br />
== References ==<br />
<references/><br />
{{APL community}}[[Category:Recreation]]</div>Master Quizhttps://aplwiki.com/index.php?title=Function_composition&diff=7231Function composition2021-08-21T12:09:07Z<p>Master Quiz: </p>
<hr />
<div>'''Function composition''' refers to the "gluing" together of two [[function]]s using a [[dyadic operator]] such that the functions are applied to the [[argument]](s) as normal, but in a particular pattern specific the used [[operator]]. The term [[wikipedia:function composition|function composition]] comes from [[traditional mathematics]] where it is used for a function <math>h(x)=f(g(x))</math> when written as <math> h(x) = (f \circ g)(x)</math>. APL generalises this idea to [[dyadic function]]s, allowing various patterns of application in addition to the simple application of one [[monadic function]] to the result of another monadic function. The three main patterns, represented by [[Atop]], [[Beside]], and [[Over]] can be visualised as follows:<br />
<br />
:[[File:Compositions.png|frameless|497px]]<br />
When any of these are applied monadically, the dotted branch falls away, and they are all equivalent to each other and to <math>(f \circ g)(x)</math> of traditional mathematics.<br />
<br />
== Additional compositions ==<br />
<br />
Additional compositions are possible, even without using an argument more than once or applying a function to its own result. However, most of these are rather trivial shuffled-around versions of the above three. For example, one could define an operator identical to Atop, only that it applies the right operand to the result of the left operand, that is <source lang=apl inline>{⍵⍵ ⍺ ⍺⍺ ⍵}</source>.<br />
<br />
Of note is [[Reverse-compose]] <source lang=apl inline>⍛</source> (also called ''Before''), which is the mirrored version of Beside <source lang=apl inline>∘</source> (also known as ''Compose'' and ''After''), because it is the only such variation that has been implemented, namely in [[dzaima/APL]] and [[Extended Dyalog APL]].<br />
<br />
A compositional operator that isn't just a shuffled around version of the basic three, is one that applies one operand between the other operand's dyadic result and the result of that other operand's result when [[swap]]ped: <source lang=apl inline>{(⍵ ⍵⍵ ⍺) ⍺⍺ (⍺ ⍵⍵ ⍵)}</source>. This operator can for example be used to implement [[wikipedia:three-way comparison|three-way comparison]]:<br />
[https://tio.run/##SyzI0U2pTMzJT///P1jhUdsEhWqNR71bFYAYQu3SBBFApKABIuDiWzVruZJzC8BadIMfdS7hetQ3FcQxUjBWMFEASRn//w8A Try it online!]<source lang=apl><br />
S ← {(⍵ ⍵⍵ ⍺) ⍺⍺ (⍺ ⍵⍵ ⍵)}<br />
cmp ← -S≤<br />
2 cmp 3<br />
¯1<br />
3 cmp 3<br />
0<br />
4 cmp 3<br />
1<br />
</source>{{Works in|[[Dyalog APL]], [[NARS2000]], [[ngn/apl]]}}<br />
<br />
== External links ==<br />
* [[Dyalog '19]]: [https://dyalog.tv/Dyalog19/?v=czWC4tjwzOQ Tacit Techniques with Dyalog version 18.0 Operators]<br />
* [[Dyalog webinar]]: [https://dyalog.tv/Webinar/?v=Hln3zryunsw Language Features of Dyalog version 18.0 in Depth]<br />
{{APL built-ins}}[[Category:Composition operators]][[Category:Tacit programming]]</div>Master Quizhttps://aplwiki.com/index.php?title=APL_Problem_Solving_Competition&diff=7184APL Problem Solving Competition2021-08-05T14:42:28Z<p>Master Quiz: </p>
<hr />
<div>The '''APL Problem Solving Competition''' is a yearly contest hosted by [[Dyalog Ltd.]] During the [[Dyalog user meeting]] that follows shortly after the competition closes, the winners are announced, followed by presentations by the grand prize winner and the professional prize winner.<br />
<br />
=== 2009 ===<br />
[https://www.dyalog.com/news/2/420/Dyalog-Announces-Winners-of-Worldwide-Computer-Programming-Contest.htm Announcement and about the grand prize winner]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Ronald Chan || Auckland, New Zealand<br />
|-<br />
|'''2nd Place'''|| Chris King || Brown University, Rhode Island USA<br />
|-<br />
|'''3rd Place'''|| Maks Verver || The Netherlands<br />
|-<br />
|}<br />
<br />
=== 2010 ===<br />
[https://www.dyalog.com/news/34/420/Meet-the-winners-of-the-World-Wide-Programming-Competition-2010.htm About the winners]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Ryan Tarpine || Brown University, Providence, Rhode Island, USA.<br />
|-<br />
|'''2nd Place'''|| Mstislav Elagin || Humboldt-Universität zu Berlin, Germany<br />
|-<br />
|'''3rd Place'''|| Joel Hough || Salt Lake Community College, Kaysville Utah, USA<br />
|-<br />
|'''Special Effort'''||Alexander Ivanov || Moscow Institute for Physical Research<br />
|}<br />
<br />
=== 2011 ===<br />
[https://www.dyalog.com/news/59/420/Programming-Contest-Winners.htm About the winners]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Joel Hough || The University of Utah, USA<br />
|-<br />
|'''2nd Place'''|| Yanqing Chen || Stony Brook University, New York, USA<br />
|-<br />
|'''3rd Place'''|| Elliot Way || Binghamton University, New York, USA<br />
|-<br />
|}<br />
<br />
=== 2012 ===<br />
[https://www.dyalog.com/news/72/420/4th-World-Wide-APL-Programming-Contest-Winner-Announced.htm Announcement and about the winner]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Hayato Hashimoto || Kyoto University, Japan<br />
|}<br />
<br />
=== 2013 ===<br />
[https://www.dyalog.com/news/83/420/2013-APL-Programming-Contest-winners.htm Announcement and about the winners]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Yanqing Chen|| Stony Brook University, USA<br />
|-<br />
|'''2nd Place'''|| Maks Verver || The Netherlands<br />
|-<br />
|'''3rd Place'''|| Chao Xu || University of Illinois, Urbana-Champaign, USA<br />
|-<br />
|}<br />
<br />
=== 2014 ===<br />
[https://www.dyalog.com/news/93/456/Winners-Announced-for-the-2014-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/94/420/2014-APL-Programming-Contest-Winners.htm About the winners]<br />
This was the first year in which a prize was offered to non-student entrants.<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Emil Bremer Orloff || Aarhus University, Denmark<br />
|-<br />
|'''2nd Place'''|| Seán Kelleher || University College Cork, Ireland<br />
|-<br />
|'''3rd Place'''|| Chao Xu || University of Illinois, Urbana-Champaign, U.S.A<br />
|-<br />
|'''Professional Prize'''|| Iryna Pashenkovska || SimCorp Ukraine<br />
|-<br />
|rowspan=2|'''Honourable mention'''||Jan-Pieter Jacobs || Universiteit Antwerpen, Belgium<br />
|-<br />
| Christopher Zhang || State University of New York at Binghamton, U.S.A.<br />
|}<br />
<br />
=== 2015 ===<br />
[https://www.dyalog.com/news/101/456/Winners-Announced-for-the-2015-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/102/420/2015-APL-Programming-Contest-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Arianna Locatelli || Liceo Classico S. M. Legnani, Saronno, Italy<br />
|-<br />
|'''2nd Place'''|| Joshua (Josh) David || University of Scranton, USA<br />
|-<br />
|'''3rd Place'''|| Dragana Babić || University of Novi Sad, Serbia<br />
|-<br />
|'''Professional Prize'''|| Roberto Szabó<br />
|-<br />
| rowspan=2 | '''Honourable mention''' || Alexander Kuhnle || Cambridge University, U.K.<br />
|-<br />
| Luyang Du || State University of New York at Binghamton, U.S.A.<br />
|}<br />
<br />
=== 2016 ===<br />
[https://www.dyalog.com/news/110/456/Winners-Announced-for-the-2016-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/112/420/2016-APL-Programming-Contest-Winners.htm About the winners]<br />
<br />
This round of the competition offered 3 grand prizes, one each in the subject domains of finance, general computing and bioinformatics.<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize (Finance)'''|| Janos (Zack) Batik || University of Cape Town, South Africa<br />
|-<br />
|'''Grand Prize (General Computing)'''|| Joshua (Josh) David || University of Scranton, USA<br />
|-<br />
|'''Grand Prize (Bioinformatics)'''|| Marinus Oosters || Universiteit Utrecht, The Netherlands<br />
|-<br />
|'''Professional Prize'''|| Mike Powell<br />
|-<br />
|'''Runner-up (Finance)''' || Rafael Rodrigues || Fundação Getulio Vargas, Brazil<br />
|-<br />
|'''Runner-up (General Computing)''' || Imaculate Mosha || University of Cape Town, South Africa<br />
|-<br />
|'''Runner-up (Bioinformatics)''' || Louis de Forcrand || Ecole Moser, Switzerland<br />
|}<br />
<br />
=== 2017 ===<br />
[https://www.dyalog.com/news/118/456/Winners-Announced-for-the-2017-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/119/420/2017-APL-Programming-Contest-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Kostas Blekos || Panepistimion Patron, Greece<br />
|-<br />
|'''2nd Place'''|| Douglas Patz || Agile Learning Center, New York City, USA<br />
|-<br />
|'''3rd Place'''|| Zachary Taylor || Maryville High School, USA<br />
|-<br />
|'''Professional Prize'''|| Mike Powell<br />
|-<br />
|rowspan=5|'''Phase I'''||Armando Cruz || Universidad Nacional Autónoma de México, Mexico<br />
|-<br />
|Ivan Demianchuk || National Taras Shevchenko University of Kyiv, Ukraine<br />
|-<br />
|Yash Garg || Indian Institute of Technology, Delhi, India<br />
|-<br />
|Arna Ghosh || Indian Institute of Technology, Kharagpur, India<br />
|-<br />
|Akarsh Ramesh Khatagalli || Visvesvaraya Technological University, India<br />
|-<br />
|rowspan=10|'''Phase I'''||Aiken Cairncross || University of Oxford, UK<br />
|-<br />
|Yu-Chi Chiang || National Central University, Taiwan<br />
|-<br />
|Anthony Cipriano || Gustav-Stresemann Gymnasium, Germany<br />
|-<br />
|Ivan Demianchuk || National Taras Shevchenko University of Kyiv, Ukraine<br />
|-<br />
|Tripti Garg || NorthCap University, India<br />
|-<br />
|Arna Ghosh || Indian Institute of Technology, Kharagpur, India<br />
|-<br />
|Bertil Johnson || University of Kentucky, USA<br />
|-<br />
|Mohammed Malik || Copenhagen International School, Denmark<br />
|-<br />
|Douglas Patz || Agile Learning Center, New York, USA<br />
|-<br />
|Zachary Taylor || Maryville High School, USA<br />
|}<br />
<br />
=== 2018 ===<br />
[https://www.dyalog.com/news/128/456/Winners-Announced-for-the-2018-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/129/420/2018-APL-Problem-Solving-Competition-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Alve Björk || Uppsala University, Sweden<br />
|-<br />
|'''2nd Place'''|| Lynn Van Hauwe || University of Antwerp, Belgium<br />
|-<br />
|'''3rd Place'''|| Rafael Rodrigues Rocha de Melo || Kyoto University, Japan<br />
|-<br />
|'''Professional Prize'''||Tiziano Berghi || SimCorp Italiana<br />
|-<br />
|rowspan=5|'''Phase II'''|| Dinesh Poudel || Jaya Multiple Campus, Nepal<br />
|-<br />
|Douglas Patz || Agile Learning Center, New York, U.S.A.<br />
|-<br />
|Joe Robertson || St. Peter's High School, Gloucester, U.K.<br />
|-<br />
|K C Unesh || Kathmand University, Nepal<br />
|-<br />
|P R Vaidyanathan || Indian Institute of Technology Gandhinagar, India<br />
|-<br />
|rowspan=10|'''Phase I'''||Alejandra González || Universidad Technológica Nacional – Instituto Nacional Superior del Profesorado Técnico, Argentina<br />
|-<br />
|Dimitri Lozeve || University of Oxford, U.K.<br />
|-<br />
|Dinesh Poudel || Jaya Multiple Campus, Nepal<br />
|-<br />
|Douglas Patz || Agile Learning Center, New York, U.S.A.<br />
|-<br />
|Du Xi || Australian National University, Australia<br />
|-<br />
|Lynn Van Hauwe || University of Antwerp, Belgium<br />
|-<br />
|Mohammed Malik || Turku International School, Finland<br />
|-<br />
|P R Vaidyanathan || Indian Institute of Technology Gandhinagar, India<br />
|-<br />
|Rafael Rodrigues Rocha de Melo || Kyoto University, Japan<br />
|-<br />
|K C Unesh || Kathmand University, Nepal<br />
|}<br />
==== Published solutions ====<br />
* rak1507: [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2018/Phase%201.dyalog Phase 1]<br />
<br />
=== 2019 ===<br />
<br />
[https://www.dyalog.com/news/134/420/2019-APL-Problem-Solving-Competition-Winners.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/136/420/2019-APL-Problem-Solving-Competition-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Jamin Wu || Monash University, Australia<br />
|-<br />
|'''2nd Place'''|| Rasmus Précenth || Uppsala University, Sweden<br />
|-<br />
|'''3rd Place'''|| Douglas Patz || Agile Learning Center, New York City, USA<br />
|-<br />
|'''Professional Prize'''|| Torsten Grust || University of Tübingen, Germany<br />
|-<br />
|rowspan=5|'''Phase II'''|| Fredrik Mattisson || Uppsala University, Sweden<br />
|-<br />
|Joe Robertson || Durham University, U.K.<br />
|-<br />
|Louis de Forcrand || Geneva University, Switzerland<br />
|-<br />
|P R Vaidyanathan || Indian Institute of Technology Gandhinagar, India<br />
|-<br />
|Rafael Rodrigues Rocha de Melo || Kyoto University, Japan<br />
|-<br />
|rowspan=10|'''Phase I'''||David Cao || University of California: San Diego, U.S.A.<br />
|-<br />
|Douglas Patz || Agile Learning Center, New York, U.S.A.<br />
|-<br />
|Dzintars Klušs || Riga State Gynmasium No. 1, Latvia<br />
|-<br />
|Fredrik Mattisson || Uppsala University, Sweden<br />
|-<br />
|Louis de Forcrand || Geneva University, Switzerland<br />
|-<br />
|Maksim Podkorytov || Florida State University, Florida, U.S.A.<br />
|-<br />
|Mohammed Malik || Turku International School, Finland<br />
|-<br />
|P R Vaidyanathan || Indian Institute of Technology Gandhinagar, India<br />
|-<br />
|Rasmus Précenth || Uppsala University, Sweden<br />
|-<br />
|Zoe Kane || Greenville Technical College, South Carolina, U.S.A.<br />
|}<br />
==== Published solutions ====<br />
* rak1507: [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2019/Phase%201.dyalog Phase 1]<br />
<br />
=== 2020 ===<br />
[https://www.dyalog.com/news/142/420/2020-APL-Problem-Solving-Competition-Winners.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/143/420/Meet-The-2020-APL-Problem-Solving-Competition-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Andrii Makukha || University of Hong Kong, China<br />
|-<br />
|'''2nd Place'''|| Dzintars Klušs || Riga State Gymnasium No. 1, Latvia<br />
|-<br />
|'''3rd Place'''|| Joshua King || University of New South Wales, Australia<br />
|-<br />
|'''Professional Prize'''|| Woosuk Kwak || South Korea<br />
|-<br />
|rowspan=5|'''Phase II'''|| Brendan King || Rose-Hulman Institute of Technology, Indiana, U.S.A.<br />
|-<br />
| Federico Landonio || Liceo Scientifico GB Grassi Saronno, Italy<br />
|-<br />
| Iiro Tapio Rastas || University of Turku, Finland<br />
|-<br />
| Louis de Forcrand || Geneva University, Switzerland<br />
|-<br />
| Zoe Kane || Greenville Technical College, South Carolina, U.S.A.<br />
|-<br />
|rowspan=10|'''Phase I'''|| Chiang Yu-Chi || National Central University, Taiwan<br />
|-<br />
| Dzintars Klušs || Riga State Gymnasium No. 1, Latvia<br />
|-<br />
| Federico Landonio || Liceo Scientifico GB Grassi Saronno, Italy<br />
|-<br />
| Joel Niemelä || home schooling, Texas, U.S.A.<br />
|-<br />
| Joshua King || University of New South Wales, Australia<br />
|-<br />
| Maksim Podkorytov || Florida State University, Florida, U.S.A.<br />
|-<br />
| Mattia Borgo || University of Padua, Italy<br />
|-<br />
| Mohammed Malik || University of Pavia, Italy<br />
|-<br />
| Rafael Rodrigues Rocha de Melo || Kyoto University, Japan<br />
|-<br />
| Zoe Kane || Greenville Technical College, South Carolina, U.S.A.<br />
|-<br />
|}<br />
==== Published solutions ====<br />
* rak1507: [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2020/Phase%201.dyalog Phase 1], [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2020/Phase%202.dyalog Phase 2]<br />
<br />
=== 2021 ===<br />
The 2021 round began on February 21 and closed on July 30.<ref>[[Dyalog Ltd.]] [https://www.dyalog.com/news/145/420/2021-APL-Problem-Solving-Competition-Announced-by-Dyalog-Ltd.htm 2021 APL Problem Solving Competition Announced by Dyalog Ltd]. News about Dyalog. Feb 12, 2021.</ref><br />
==== Published solutions ====<br />
* (anonymous): [https://tio.run/#%23JU89S8NAGN7zK7IlIUkvd7ZVhy46OLi5FoeC4FLwVmlcHEpy9qDiEEdJDXbrUMRS6NL8k/ePxOe9LsfxPt8TPU0fnifTp8eu0zKj@XJG8/cwJbuP8DmuyczJ/r54@tJhi0IcNyoVZHcykQnZtaLyS7SVuzHvArwc@ibMfNX3hxmZ5rg5gxmZOvL0OfCQih@hRoKKTypMLJIwFtJXvuKDLaMI1GTcG9zT4uDpISerPObQ4CoYcQ4MJD5bCILbAACaOPEuuAPD1J4enIKM5EG0MKr9Y1JZY9gHjJOx5ASUOgkz9sudtO@k1VvKhdoq6jtpW@HxNKYsyayA9GaoglZrlu5z18u8kv12Jop5dgtVWbvbisoGB0@j0RJrytrZyiwDpzA85eY66Lp/ Phase 1]<br />
* dzaima: [https://dzaima.github.io/paste/#0LZC9TsMwFIX3PEU22yStY1PYssDAwNY3qMTCC7CkXQBFiRsjKoTSEdJWZOuAUCKkLvGb3CfhuGXxzzlH9373cpUkro6k66hsBBWGijW7uWYB2e852VZF0MluyWyCjFP@lqRkfxEaw/0RcmjJPOK1gBQHfOK6Ya8jqpdKoKRtXY0jyOjl/e7@gfJXRctnxDmZJnadIPNE1YHPqNxSZWCcjS@EnCFItk9SfqQwAEMH37/8kBqNe/xTdsUA/MWmt1NG5SckiV64MAVEtgjgyswfOpU8kipUZEuPHUfSVwR8sT6ikN35OaoDBGREMB9B4kmoJ@FlQmY37M@9la8EhqkKqeG3KNKr2G8p1h7N1XokT6i@FPaUr7A75a/q8L@qDVfpCRfTNz79Bw#APL Phase 1]<br />
* LdBeth: [https://github.com/LdBeth/aplcomp2021 Phase 1]<br />
* Master Quiz: [https://github.com/Masterquiz/APL-Problem-Solving-Competition/tree/main/2021/Phase1 Phase 1], [https://github.com/Masterquiz/APL-Problem-Solving-Competition/tree/main/2021/Phase2 Phase 2]<br />
* rak1507: [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2021/Phase%201.dyalog Phase 1], [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2021/Phase%202.dyalog Phase 2]<br />
* [[User:Razetime|Razetime]]: [https://github.com/razetime/APLPSC21/tree/master/Phase-1 Phase 1], [https://github.com/razetime/APLPSC21/tree/master/Phase-2 Phase 2]<br />
<br />
== External links ==<br />
* [https://www.dyalog.com/student-competition.htm Dyalog]<br />
<br />
* [https://www.dyalogaplcompetition.com/ Competition website]<br />
== References ==<br />
<references/><br />
{{APL community}}[[Category:Recreation]]</div>Master Quizhttps://aplwiki.com/index.php?title=APL_Problem_Solving_Competition&diff=7171APL Problem Solving Competition2021-08-04T13:29:47Z<p>Master Quiz: </p>
<hr />
<div>The '''APL Problem Solving Competition''' is a yearly contest hosted by [[Dyalog Ltd.]] During the [[Dyalog user meeting]] that follows shortly after the competition closes, the winners are announced, followed by presentations by the grand prize winner and the professional prize winner.<br />
<br />
=== 2009 ===<br />
[https://www.dyalog.com/news/2/420/Dyalog-Announces-Winners-of-Worldwide-Computer-Programming-Contest.htm Announcement and about the grand prize winner]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Ronald Chan || Auckland, New Zealand<br />
|-<br />
|'''2nd Place'''|| Chris King || Brown University, Rhode Island USA<br />
|-<br />
|'''3rd Place'''|| Maks Verver || The Netherlands<br />
|-<br />
|}<br />
<br />
=== 2010 ===<br />
[https://www.dyalog.com/news/34/420/Meet-the-winners-of-the-World-Wide-Programming-Competition-2010.htm About the winners]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Ryan Tarpine || Brown University, Providence, Rhode Island, USA.<br />
|-<br />
|'''2nd Place'''|| Mstislav Elagin || Humboldt-Universität zu Berlin, Germany<br />
|-<br />
|'''3rd Place'''|| Joel Hough || Salt Lake Community College, Kaysville Utah, USA<br />
|-<br />
|'''Special Effort'''||Alexander Ivanov || Moscow Institute for Physical Research<br />
|}<br />
<br />
=== 2011 ===<br />
[https://www.dyalog.com/news/59/420/Programming-Contest-Winners.htm About the winners]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Joel Hough || The University of Utah, USA<br />
|-<br />
|'''2nd Place'''|| Yanqing Chen || Stony Brook University, New York, USA<br />
|-<br />
|'''3rd Place'''|| Elliot Way || Binghamton University, New York, USA<br />
|-<br />
|}<br />
<br />
=== 2012 ===<br />
[https://www.dyalog.com/news/72/420/4th-World-Wide-APL-Programming-Contest-Winner-Announced.htm Announcement and about the winner]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Hayato Hashimoto || Kyoto University, Japan<br />
|}<br />
<br />
=== 2013 ===<br />
[https://www.dyalog.com/news/83/420/2013-APL-Programming-Contest-winners.htm Announcement and about the winners]<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Yanqing Chen|| Stony Brook University, USA<br />
|-<br />
|'''2nd Place'''|| Maks Verver || The Netherlands<br />
|-<br />
|'''3rd Place'''|| Chao Xu || University of Illinois, Urbana-Champaign, USA<br />
|-<br />
|}<br />
<br />
=== 2014 ===<br />
[https://www.dyalog.com/news/93/456/Winners-Announced-for-the-2014-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/94/420/2014-APL-Programming-Contest-Winners.htm About the winners]<br />
This was the first year in which a prize was offered to non-student entrants.<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Emil Bremer Orloff || Aarhus University, Denmark<br />
|-<br />
|'''2nd Place'''|| Seán Kelleher || University College Cork, Ireland<br />
|-<br />
|'''3rd Place'''|| Chao Xu || University of Illinois, Urbana-Champaign, U.S.A<br />
|-<br />
|'''Professional Prize'''|| Iryna Pashenkovska || SimCorp Ukraine<br />
|-<br />
|rowspan=2|'''Honourable mention'''||Jan-Pieter Jacobs || Universiteit Antwerpen, Belgium<br />
|-<br />
| Christopher Zhang || State University of New York at Binghamton, U.S.A.<br />
|}<br />
<br />
=== 2015 ===<br />
[https://www.dyalog.com/news/101/456/Winners-Announced-for-the-2015-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/102/420/2015-APL-Programming-Contest-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Arianna Locatelli || Liceo Classico S. M. Legnani, Saronno, Italy<br />
|-<br />
|'''2nd Place'''|| Joshua (Josh) David || University of Scranton, USA<br />
|-<br />
|'''3rd Place'''|| Dragana Babić || University of Novi Sad, Serbia<br />
|-<br />
|'''Professional Prize'''|| Roberto Szabó<br />
|-<br />
| rowspan=2 | '''Honourable mention''' || Alexander Kuhnle || Cambridge University, U.K.<br />
|-<br />
| Luyang Du || State University of New York at Binghamton, U.S.A.<br />
|}<br />
<br />
=== 2016 ===<br />
[https://www.dyalog.com/news/110/456/Winners-Announced-for-the-2016-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/112/420/2016-APL-Programming-Contest-Winners.htm About the winners]<br />
<br />
This round of the competition offered 3 grand prizes, one each in the subject domains of finance, general computing and bioinformatics.<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize (Finance)'''|| Janos (Zack) Batik || University of Cape Town, South Africa<br />
|-<br />
|'''Grand Prize (General Computing)'''|| Joshua (Josh) David || University of Scranton, USA<br />
|-<br />
|'''Grand Prize (Bioinformatics)'''|| Marinus Oosters || Universiteit Utrecht, The Netherlands<br />
|-<br />
|'''Professional Prize'''|| Mike Powell<br />
|-<br />
|'''Runner-up (Finance)''' || Rafael Rodrigues || Fundação Getulio Vargas, Brazil<br />
|-<br />
|'''Runner-up (General Computing)''' || Imaculate Mosha || University of Cape Town, South Africa<br />
|-<br />
|'''Runner-up (Bioinformatics)''' || Louis de Forcrand || Ecole Moser, Switzerland<br />
|}<br />
<br />
=== 2017 ===<br />
[https://www.dyalog.com/news/118/456/Winners-Announced-for-the-2017-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/119/420/2017-APL-Programming-Contest-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Kostas Blekos || Panepistimion Patron, Greece<br />
|-<br />
|'''2nd Place'''|| Douglas Patz || Agile Learning Center, New York City, USA<br />
|-<br />
|'''3rd Place'''|| Zachary Taylor || Maryville High School, USA<br />
|-<br />
|'''Professional Prize'''|| Mike Powell<br />
|-<br />
|rowspan=5|'''Phase I'''||Armando Cruz || Universidad Nacional Autónoma de México, Mexico<br />
|-<br />
|Ivan Demianchuk || National Taras Shevchenko University of Kyiv, Ukraine<br />
|-<br />
|Yash Garg || Indian Institute of Technology, Delhi, India<br />
|-<br />
|Arna Ghosh || Indian Institute of Technology, Kharagpur, India<br />
|-<br />
|Akarsh Ramesh Khatagalli || Visvesvaraya Technological University, India<br />
|-<br />
|rowspan=10|'''Phase I'''||Aiken Cairncross || University of Oxford, UK<br />
|-<br />
|Yu-Chi Chiang || National Central University, Taiwan<br />
|-<br />
|Anthony Cipriano || Gustav-Stresemann Gymnasium, Germany<br />
|-<br />
|Ivan Demianchuk || National Taras Shevchenko University of Kyiv, Ukraine<br />
|-<br />
|Tripti Garg || NorthCap University, India<br />
|-<br />
|Arna Ghosh || Indian Institute of Technology, Kharagpur, India<br />
|-<br />
|Bertil Johnson || University of Kentucky, USA<br />
|-<br />
|Mohammed Malik || Copenhagen International School, Denmark<br />
|-<br />
|Douglas Patz || Agile Learning Center, New York, USA<br />
|-<br />
|Zachary Taylor || Maryville High School, USA<br />
|}<br />
<br />
=== 2018 ===<br />
[https://www.dyalog.com/news/128/456/Winners-Announced-for-the-2018-APL-Programming-Contest.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/129/420/2018-APL-Problem-Solving-Competition-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Alve Björk || Uppsala University, Sweden<br />
|-<br />
|'''2nd Place'''|| Lynn Van Hauwe || University of Antwerp, Belgium<br />
|-<br />
|'''3rd Place'''|| Rafael Rodrigues Rocha de Melo || Kyoto University, Japan<br />
|-<br />
|'''Professional Prize'''||Tiziano Berghi || SimCorp Italiana<br />
|-<br />
|rowspan=5|'''Phase II'''|| Dinesh Poudel || Jaya Multiple Campus, Nepal<br />
|-<br />
|Douglas Patz || Agile Learning Center, New York, U.S.A.<br />
|-<br />
|Joe Robertson || St. Peter's High School, Gloucester, U.K.<br />
|-<br />
|K C Unesh || Kathmand University, Nepal<br />
|-<br />
|P R Vaidyanathan || Indian Institute of Technology Gandhinagar, India<br />
|-<br />
|rowspan=10|'''Phase I'''||Alejandra González || Universidad Technológica Nacional – Instituto Nacional Superior del Profesorado Técnico, Argentina<br />
|-<br />
|Dimitri Lozeve || University of Oxford, U.K.<br />
|-<br />
|Dinesh Poudel || Jaya Multiple Campus, Nepal<br />
|-<br />
|Douglas Patz || Agile Learning Center, New York, U.S.A.<br />
|-<br />
|Du Xi || Australian National University, Australia<br />
|-<br />
|Lynn Van Hauwe || University of Antwerp, Belgium<br />
|-<br />
|Mohammed Malik || Turku International School, Finland<br />
|-<br />
|P R Vaidyanathan || Indian Institute of Technology Gandhinagar, India<br />
|-<br />
|Rafael Rodrigues Rocha de Melo || Kyoto University, Japan<br />
|-<br />
|K C Unesh || Kathmand University, Nepal<br />
|}<br />
==== Published solutions ====<br />
* rak1507: [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2018/Phase%201.dyalog Phase 1]<br />
<br />
=== 2019 ===<br />
<br />
[https://www.dyalog.com/news/134/420/2019-APL-Problem-Solving-Competition-Winners.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/136/420/2019-APL-Problem-Solving-Competition-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Jamin Wu || Monash University, Australia<br />
|-<br />
|'''2nd Place'''|| Rasmus Précenth || Uppsala University, Sweden<br />
|-<br />
|'''3rd Place'''|| Douglas Patz || Agile Learning Center, New York City, USA<br />
|-<br />
|'''Professional Prize'''|| Torsten Grust || University of Tübingen, Germany<br />
|-<br />
|rowspan=5|'''Phase II'''|| Fredrik Mattisson || Uppsala University, Sweden<br />
|-<br />
|Joe Robertson || Durham University, U.K.<br />
|-<br />
|Louis de Forcrand || Geneva University, Switzerland<br />
|-<br />
|P R Vaidyanathan || Indian Institute of Technology Gandhinagar, India<br />
|-<br />
|Rafael Rodrigues Rocha de Melo || Kyoto University, Japan<br />
|-<br />
|rowspan=10|'''Phase I'''||David Cao || University of California: San Diego, U.S.A.<br />
|-<br />
|Douglas Patz || Agile Learning Center, New York, U.S.A.<br />
|-<br />
|Dzintars Klušs || Riga State Gynmasium No. 1, Latvia<br />
|-<br />
|Fredrik Mattisson || Uppsala University, Sweden<br />
|-<br />
|Louis de Forcrand || Geneva University, Switzerland<br />
|-<br />
|Maksim Podkorytov || Florida State University, Florida, U.S.A.<br />
|-<br />
|Mohammed Malik || Turku International School, Finland<br />
|-<br />
|P R Vaidyanathan || Indian Institute of Technology Gandhinagar, India<br />
|-<br />
|Rasmus Précenth || Uppsala University, Sweden<br />
|-<br />
|Zoe Kane || Greenville Technical College, South Carolina, U.S.A.<br />
|}<br />
==== Published solutions ====<br />
* rak1507: [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2019/Phase%201.dyalog Phase 1]<br />
<br />
=== 2020 ===<br />
[https://www.dyalog.com/news/142/420/2020-APL-Problem-Solving-Competition-Winners.htm Announcement]<br />
<br />
[https://www.dyalog.com/news/143/420/Meet-The-2020-APL-Problem-Solving-Competition-Winners.htm About the winners]<br />
<br />
{| class="wikitable"<br />
|'''Grand Prize'''|| Andrii Makukha || University of Hong Kong, China<br />
|-<br />
|'''2nd Place'''|| Dzintars Klušs || Riga State Gymnasium No. 1, Latvia<br />
|-<br />
|'''3rd Place'''|| Joshua King || University of New South Wales, Australia<br />
|-<br />
|'''Professional Prize'''|| Woosuk Kwak || South Korea<br />
|-<br />
|rowspan=5|'''Phase II'''|| Brendan King || Rose-Hulman Institute of Technology, Indiana, U.S.A.<br />
|-<br />
| Federico Landonio || Liceo Scientifico GB Grassi Saronno, Italy<br />
|-<br />
| Iiro Tapio Rastas || University of Turku, Finland<br />
|-<br />
| Louis de Forcrand || Geneva University, Switzerland<br />
|-<br />
| Zoe Kane || Greenville Technical College, South Carolina, U.S.A.<br />
|-<br />
|rowspan=10|'''Phase I'''|| Chiang Yu-Chi || National Central University, Taiwan<br />
|-<br />
| Dzintars Klušs || Riga State Gymnasium No. 1, Latvia<br />
|-<br />
| Federico Landonio || Liceo Scientifico GB Grassi Saronno, Italy<br />
|-<br />
| Joel Niemelä || home schooling, Texas, U.S.A.<br />
|-<br />
| Joshua King || University of New South Wales, Australia<br />
|-<br />
| Maksim Podkorytov || Florida State University, Florida, U.S.A.<br />
|-<br />
| Mattia Borgo || University of Padua, Italy<br />
|-<br />
| Mohammed Malik || University of Pavia, Italy<br />
|-<br />
| Rafael Rodrigues Rocha de Melo || Kyoto University, Japan<br />
|-<br />
| Zoe Kane || Greenville Technical College, South Carolina, U.S.A.<br />
|-<br />
|}<br />
==== Published solutions ====<br />
* rak1507: [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2020/Phase%201.dyalog Phase 1], [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2020/Phase%202.dyalog Phase 2]<br />
<br />
=== 2021 ===<br />
The 2021 round began on February 21 and closed on July 30.<ref>[[Dyalog Ltd.]] [https://www.dyalog.com/news/145/420/2021-APL-Problem-Solving-Competition-Announced-by-Dyalog-Ltd.htm 2021 APL Problem Solving Competition Announced by Dyalog Ltd]. News about Dyalog. Feb 12, 2021.</ref><br />
==== Published solutions ====<br />
* dzaima: [https://dzaima.github.io/paste/#0LZC9TsMwFIX3PEU22yStY1PYssDAwNY3qMTCC7CkXQBFiRsjKoTSEdJWZOuAUCKkLvGb3CfhuGXxzzlH9373cpUkro6k66hsBBWGijW7uWYB2e852VZF0MluyWyCjFP@lqRkfxEaw/0RcmjJPOK1gBQHfOK6Ya8jqpdKoKRtXY0jyOjl/e7@gfJXRctnxDmZJnadIPNE1YHPqNxSZWCcjS@EnCFItk9SfqQwAEMH37/8kBqNe/xTdsUA/MWmt1NG5SckiV64MAVEtgjgyswfOpU8kipUZEuPHUfSVwR8sT6ikN35OaoDBGREMB9B4kmoJ@FlQmY37M@9la8EhqkKqeG3KNKr2G8p1h7N1XokT6i@FPaUr7A75a/q8L@qDVfpCRfTNz79Bw#APL Phase 1]<br />
* LdBeth: [https://github.com/LdBeth/aplcomp2021 Phase 1]<br />
* Master Quiz: [https://github.com/Masterquiz/APL-Problem-Solving-Competition/blob/main/2021/Phase1.dyalog Phase 1], [https://github.com/Masterquiz/APL-Problem-Solving-Competition/tree/main/2021/Phase2 Phase 2]<br />
* rak1507: [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2021/Phase%201.dyalog Phase 1], [https://github.com/rak1507/Various-APL-Stuff/blob/master/Competitions/2021/Phase%202.dyalog Phase 2]<br />
* [[User:Razetime|Razetime]]: [https://github.com/razetime/APLPSC21/tree/master/Phase-1 Phase 1], [https://github.com/razetime/APLPSC21/tree/master/Phase-2 Phase 2]<br />
<br />
== External links ==<br />
* [https://www.dyalog.com/student-competition.htm Dyalog]<br />
<br />
* [https://www.dyalogaplcompetition.com/ Competition website]<br />
== References ==<br />
<references/><br />
{{APL community}}[[Category:Recreation]]</div>Master Quiz