Advent of Code 2020 – And the Winner Is…

James HeslipAPLLeave a Comment

Another year comes to a close and brings with it the end of another excellent Advent of Code. Here at Optima, the spirit of competition remained high throughout; Roy kept up a close tail, but nobody was able to catch Jonners on his way to victory. With that said, Jonners took the Optima trophy, along with the overall prize. In … Read More

Programming Challenge: The Year Game

Sam GutsellAPLLeave a Comment

Happy New Year! At the start of this year, I remembered a challenge that Dyalog had come up with back in 2016 that was focused around the year 2016. So, I decided to see how I would get on trying the same challenge with the year 2021. The challenge The challenge is to write a series of expressions using the … Read More

Advent of Code 2020 Day 5 – Our Solutions

James HeslipAPLLeave a Comment

Airports can be hectic, especially around Christmas. Nobody wants to get stuck and miss their flight, even if it is completely hypothetical. Advent of Code’s day 5 question deals with a chaotic situation of boarding passes and locating your seat on a plane; seems a distant memory now with all that’s going on in the world… Your given input is … Read More

Advent of Code 2020 Day 1 – Our Solutions

James HeslipAPLLeave a Comment

The holiday season is among us, and that can only mean one thing…Advent of Code is here! Optima is hosting a little internal competition this year to see who can get the most stars. This has genius from all corners of the office, and I thought it would be nice to show off the different thought processes from some of … Read More

Quines – A Puzzling Programming Novelty

Jonners WaltonAPLLeave a Comment

My introduction to APL consisted of using the language to solve a number of quick puzzles; the phase 1 problems from Dyalog’s annual Student Competition. It was a fantastic way to get to grips with each of the glyphs and the capabilities of the language. While the puzzles were a far cry from real life problems, and the solutions a … Read More

Using Booleans (with some Dyalog APL examples)

Sam GutsellAPL, Computer ScienceLeave a Comment

Booleans are one of the most prominent data types used throughout computing. In programming, Booleans are mainly used in logic problems and can be used and manipulated in many ways. What is a Boolean? A Boolean is a data type used to identify a value which can only be true or false, sometimes represented as 1 or 0, respectively. The … Read More

Pervasion of Ambivalence in APL Functions

John 'Jake' JacobAPLLeave a Comment

Introduction I was recently tasked with modifying a Dyalog class currently running under Dyalog 16 so that it would run under Dyalog 17.1. The class in question was used to serialize APL data into a JSON format and back again. The problem was that it made use of the two I-beams 7159 and 7160. These are deprecated in 17.1 so … Read More

Using a MIDI Controller With Dyalog APL

Sam GutsellAPLLeave a Comment

As well as being a programmer, I am a hobbyist musician. At school and in my spare time I have studied music production and music theory. I occasionally write pieces of music and I recently received a MIDI controller as a gift. Being a programmer one of my initial thoughts was ‘how can I code an interface to this device?’, … Read More

Version Management in Dyalog APL

Sam ThompsonAPLLeave a Comment

Version management is a vital component of any software development project. The ability to revert to previous version of a project in the case of disastrous bug or misguided feature is one that any developer is glad to have in their back pocket. A source code manager (SCM) is software that assists in managing and versioning source code. Programmers use … Read More

Left and Right Tack in Dyalog APL

James HeslipAPLLeave a Comment

Dyalog APL offers two symbols which do, on the surface, a seemingly pointless task. I’m referring to left tack (⊣) and right tack (⊢). As with most APL functions, they have two uses depending on their number of arguments: monadic, if used only with a right argument; or dyadic if used with a left and a right argument. If used … Read More

Rendering HTML in Dyalog APL

James HeslipAPLLeave a Comment

I was inspired by the talks of Brian Becker and Josh David at the Dyalog’19 user meeting to try out some of Dyalog 17.1’s newer methods of GUI implementation. On the Sunday 8th of September – the unofficial first day of the conference- I attended their workshop on rendering HTML in Dyalog APL. Realising the potential for modernisation in our … Read More

Indexing arrays in APL: Squad indexing on multi-dimensional arrays

James HeslipAPLLeave a Comment

I had a question for the team in our regular meeting on Wednesday, but it relied on an understanding on squad indexing, and nobody felt comfortable enough with ⌷ to answer my question. I’ve since reach a conclusion and thought I’d share. For a given 3-dimensional object, I can use square bracket indexing to retrieve the indices I want. I … Read More

Order of Execution in APL Programming

Sam GutsellAPLLeave a Comment

Order of Execution in APL Programming Blog

APL began life as a mathematical notation, created by the Canadian computer scientist Kenneth E. Iverson. Over the years it evolved into the APL programming language. There are several versions of APL but they all follow the same order of operations. When I started learning APL, one of the trickiest things was reprogramming my brain! This was because APL does … Read More