Dual

From NARS2000
Revision as of 22:06, 6 February 2024 by WikiSysop (talk | contribs) (Created page with "<table border="1" cellpadding="5" cellspacing="0" rules="none" summary=""> <tr> <td> <table border="0" cellpadding="5" cellspacing="0" summary=""> <tr> <td valign="top"><apll>Z←{L} <i>f</i>⍢<i>g</i> R</apll></td> <td></td> <td></td> <td>applies the function <apll><i>g</i></apll> then <apll><i>f</i></apll> and then <apll><i>g</i>⍣¯1</apll> to or between the arguments.</td> </tr> </table> </td> </tr> <tr> <td><apll>L</ap...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
Z←{L} fg R applies the function g then f and then g⍣¯1 to or between the arguments.
L is an optional array.
R is an array.
f is an arbitrary ambivalent function.
g is an arbitrary monadic function with an inverse.

Introduction

The concept of the Dual operator was described in Ken Iverson's paper on Operators and Functions.



Implementation

This operator is implemented via the anonymous function:

{⍺←⍣0 ⋄ ⍵⍵⍣¯1 (⍵⍵ ⍺)⍺⍺ ⍵⍵ ⍵}