Adám Brudzewsky


APL operators (higher-order functions) offer powerful ways to apply functions to data. While Dyalog provides plenty of powerful operators, you can define your own to accomplish additional tasks. In this webinar, we show the basic syntax of user-defined operators and present a few utilities, compositions, and conceptual tools.

Slides PPTX: https://www.dyalog.com/uploads/files/presentations/Webinar_UserDefinedOperators.pptx
Slides PDF: https://www.dyalog.com/uploads/files/presentations/Webinar_UserDefinedOperators.pdf

00:00 Introduction
01:42 What is an operator? Operator and derived function valence
05:50 How to define operators, traditional and dops
11:35 _S: Stack arguments on the result of applying a function
15:11 Make an operator derive ambivalent functions
16:50 _T: An operator to trace through an expression function-by-function
18:38 Get the definition of an operand function using ⎕ATX
20:28 _A_: Across: Apply a function with the arguments flipped both ways; apply a function and its commute. Particularly useful with set functions such as ∊ ⍳ ~
23:56 Reverse-compose AKA Hook to apply a function after pre-processing the argument
28:56 _W_: The While operator as a functional alternative to :While
33:16 _E_: The Error-Else operator to modify behaviour in the case of an error
34:47 Let operators use function or array operands using (⍺⍺⊣⊢) or (⍵⍵⊣⊢)
38:20 _0: Apply non-scalar functions to simple scalars AKA scalar pervasion, like dfns.perv but with selective assignment
42:57 Conclusion
    • User-Defined Operators

      User-Defined Operators

      Adám Brudzewsky
    • Getting Data and Code into the Workspace feat. ]Get

      Getting Data and Code into the Workspace feat. ]Get

      Richard Park
    • New User Commands in Dyalog v18.2

      New User Commands in Dyalog v18.2

      Richard Park
    • Introducing Dyalog version 18.2

      Introducing Dyalog version 18.2

      Morten Kromberg
    • Data Visualisation

      Data Visualisation

      Richard Park
    • Computing Check Digits, Fast

      Computing Check Digits, Fast

      Adám Brudzewsky
    • Error Handling - Part 5

      Error Handling - Part 5

      Adám Brudzewsky
    • TryAPL v3

      TryAPL v3

      Richard Park
    • Error Handling - Part 4

      Error Handling - Part 4

      Adám Brudzewsky
    • Database Basics

      Database Basics

      Richard Park
    • Error Handling – Part 3

      Error Handling – Part 3

      Adám Brudzewsky
    • Drawing the Mandelbrot Set

      Drawing the Mandelbrot Set

      Rodrigo Girão Serrão
    • Error Handling - Part 2

      Error Handling - Part 2

      Adám Brudzewsky
    • Boolean Scans and Reductions

      Boolean Scans and Reductions

      Richard Park
    • Error Handling - Part 1

      Error Handling - Part 1

      Adám Brudzewsky
    • The Rank Operator and Dyadic Transpose

      The Rank Operator and Dyadic Transpose

      Richard Park
    • Thinking in APL: Array-Oriented Solutions - Part 2

      Thinking in APL: Array-Oriented Solutions - Part 2

      Richard Park
    • Language Features of Dyalog version 18.0 in Depth - Part 5

      Language Features of Dyalog version 18.0 in Depth - Part 5

      Adám Brudzewsky
    • Advanced Use of The Rank Operator

      Advanced Use of The Rank Operator

      Richard Park
    • Language Features of Dyalog version 18.0 in Depth (Part 4)

      Language Features of Dyalog version 18.0 in Depth (Part 4)

      Adám Brudzewsky
    • The Rank Operator

      The Rank Operator

      Richard Park
    • Language Features of Dyalog version 18.0 in Depth (Part 3)

      Language Features of Dyalog version 18.0 in Depth (Part 3)

      Adám Brudzewsky
    • Thinking in APL: Array-Oriented Solutions (Part 1)

      Thinking in APL: Array-Oriented Solutions (Part 1)

      Richard Park
    • Language Features of Dyalog version 18.0 in Depth (Part 2)

      Language Features of Dyalog version 18.0 in Depth (Part 2)

      Adám Brudzewsky
    • APL and Microsoft Excel

      APL and Microsoft Excel

      Richard Park
    • Language Features of Dyalog version 18.0 in Depth (Part 1)

      Language Features of Dyalog version 18.0 in Depth (Part 1)

      Adám Brudzewsky
    • Introducing Dyalog version 18.0

      Introducing Dyalog version 18.0

      Morten Kromberg
    • Selecting from Arrays

      Selecting from Arrays

      Richard Park
    • Progressive Set Functions

      Progressive Set Functions

      Adam Bruzewski
    • Fast APL

      Fast APL

      Richard Park
    • Train Spotting in Dyalog APl

      Train Spotting in Dyalog APl

      Richard Park
    • qWC (CROSS_PLATFORM ⎕WC) – AN INTRODUCTION AND UPDATE

      qWC (CROSS_PLATFORM ⎕WC) – AN INTRODUCTION AND UPDATE

      Chris Hughes
    • Concluding the 2019 APL Problem Solving Competition

      Concluding the 2019 APL Problem Solving Competition

      Richard Park
    • Molecular Dynamics in Dyalog APL

      Molecular Dynamics in Dyalog APL

      Richard Park
    • Source Code Management with Dyalog v17.1

      Source Code Management with Dyalog v17.1

      Morten Kromberg
    • Introducing the 2019 APL Problem Solving Competition

      Introducing the 2019 APL Problem Solving Competition

      Richard Park
    • TryAPL - The Next Generation

      TryAPL - The Next Generation

      Richard Park
    • Adventures in Advent of Code

      Adventures in Advent of Code

      Jay Foad
    • Jupyter Notebook support for Dyalog APL

      Jupyter Notebook support for Dyalog APL

      Adám Brudzewsky
    • Cross-Platform Charting

      Cross-Platform Charting

      Brian Becker
    • Acquiring online data using HttpCommand, ⎕JSON and ⎕XML

      Acquiring online data using HttpCommand, ⎕JSON and ⎕XML

      Morten Kromberg
    • Creating and managing your own User Commands

      Creating and managing your own User Commands

      Adám Brudzewsky
    • APL Processes and Isolates in the Clouds

      APL Processes and Isolates in the Clouds

      Morten Kromberg
    • Total Array Ordering

      Total Array Ordering

      Jay Foad & Adám Brudzewsky
    • Pre-Release User Commands

      Pre-Release User Commands

      Adám Brudzewsky & Morten Kromberg
    • Microservices in Dyalog APL

      Microservices in Dyalog APL

      Morten Kromberg
    • Source Code Management with GitHub and APL

      Source Code Management with GitHub and APL

      Morten Kromberg & Brian Becker
    • APL CodeGolf Autumn Tournament

      APL CodeGolf Autumn Tournament

      Adám Brudzewskey
    • Summer Intern Show

      Summer Intern Show

      Marinus Oosters, Becca Murray & Stephanie Buettner
    • A closer look at the new primitives in version 16.0

      A closer look at the new primitives in version 16.0

      Morten Kromberg & John Scholes
    • Celebrating the release of Dyalog Version 16.0 and RIDE 4.0

      Celebrating the release of Dyalog Version 16.0 and RIDE 4.0

      Morten Kromberg
    • Something Old, Something New & Something Experimental

      Something Old, Something New & Something Experimental

      Richard Smith & Morten Kromberg