Dan Baronet: Difference between revisions
m (Text replacement - "</source>" to "</syntaxhighlight>") |
m (IPSA employees category) |
||
(One intermediate revision by one other user not shown) | |||
Line 6: | Line 6: | ||
== The "Dan Baronet special" == | == The "Dan Baronet special" == | ||
Baronet was famous for innovative uses of APL primitives. He's credited with discovering that < | Baronet was famous for innovative uses of APL primitives. He's credited with discovering that <syntaxhighlight lang=APL inline>b⊥b</syntaxhighlight> or, as he preferred writing it, <syntaxhighlight lang=APL inline>⊥⍨b</syntaxhighlight>, counts the number of trailing ones in the Boolean vector <syntaxhighlight lang=APL inline>b</syntaxhighlight>:<ref>Roger Hui. [http://danielbaronet.rip/ Tribute to Daniel Baronet]. DanielBaronet.RIP</ref> | ||
< | <syntaxhighlight lang=apl inline>⊥</syntaxhighlight> ([[Decode]]) performs base conversion. If the left argument is a vector, it performs ''mixed'' base conversion. | ||
For a base vector <math>b = b_n,\cdots,b_0</math> and a digit vector <math>a = a_n,\cdots, a_0</math>, < | For a base vector <math>b = b_n,\cdots,b_0</math> and a digit vector <math>a = a_n,\cdots, a_0</math>, <syntaxhighlight lang=apl inline>b ⊥ a</syntaxhighlight> converts <math>a</math> to the mixed base <math>b</math>, i.e., it computes <math>b_0\cdots b_{n-1}a_n + \cdots + b_0b_1a_2 + b_0a_1 + a_0</math>. | ||
Now, in a monadic context, < | Now, in a monadic context, <syntaxhighlight lang=apl inline>⍨</syntaxhighlight> ([[Commute]]) causes the function to the left to be called with equal left and right arguments. | ||
So < | So <syntaxhighlight lang=apl inline>⊥⍨b</syntaxhighlight> is defined as <syntaxhighlight lang=apl inline>b⊥b</syntaxhighlight>, which computes <math>a_0\cdots a_n + \cdots + a_0a_1a_2 + a_0a_1 + a_0</math>, the sum of all cumulative products from the right to the left. | ||
For < | For <syntaxhighlight lang=apl inline>k</syntaxhighlight> trailing ones, the <syntaxhighlight lang=apl inline>k</syntaxhighlight> rightmost products are <syntaxhighlight lang=apl inline>1</syntaxhighlight> and all others are <syntaxhighlight lang=apl inline>0</syntaxhighlight>, so their sum is equal to <syntaxhighlight lang=apl inline>k</syntaxhighlight>.<ref>Stack User "Dennis". [https://codegolf.stackexchange.com/a/98764 Answer] in [[Dyalog APL]] to [[Adám Brudzewsky]]'s [[code golf]] challenge. Code Golf and Coding Challenges Stack Exchange.</ref> | ||
== Publications == | == Publications == | ||
Line 57: | Line 57: | ||
== References == | == References == | ||
<references/> | <references/> | ||
{{APL community}}{{DEFAULTSORT:Baronet}}[[Category:People]][[Category:Dyalog Ltd. employees]] | {{APL community}}{{DEFAULTSORT:Baronet}}[[Category:People]][[Category:I.P. Sharp Associates employees]][[Category:Dyalog Ltd. employees]] |
Latest revision as of 21:43, 20 February 2024
Daniel Baronet (6 May 1956–1 Nov 2016), also known as APLtrainer, was an APL (and later J) programmer since 1976, working for I.P. Sharp Associates in Melbourne, Toronto, Montreal, and Copenhagen, from 1983 to 1988, and for Dyalog Ltd from 2006 until his death.
Baronet was responsible for Dyalog's Simple APL Library Toolkit (SALT) and its framework for user commands (affectionately known as spice), but also worked on many other APL tools through his company Milinta Inc, specialising in the development of free open-source tools to transfer of APL code between dialects.[1] He was a prolific writer and presented at many events.
The "Dan Baronet special"
Baronet was famous for innovative uses of APL primitives. He's credited with discovering that b⊥b
or, as he preferred writing it, ⊥⍨b
, counts the number of trailing ones in the Boolean vector b
:[2]
⊥
(Decode) performs base conversion. If the left argument is a vector, it performs mixed base conversion.
For a base vector and a digit vector , b ⊥ a
converts to the mixed base , i.e., it computes .
Now, in a monadic context, ⍨
(Commute) causes the function to the left to be called with equal left and right arguments.
So ⊥⍨b
is defined as b⊥b
, which computes , the sum of all cumulative products from the right to the left.
For k
trailing ones, the k
rightmost products are 1
and all others are 0
, so their sum is equal to k
.[3]
Publications
- Articles in the Vector journal
- APLtrainer ― YouTube videos
APL conferences
Dyalog user meetings
- Dyalog '06 W05: Introduction to Object Oriented Programming using Dyalog version 11.0 (materials)
- Dyalog '07 05: SALT, Subversion and the Dyalog Code Library (materials)
- Dyalog '07 W01: Introduction to Object Oriented Programming using Dyalog version 11.0
- Dyalog '08 W04: Source Code Management using SALT and Subversion (materials)
- Dyalog '08 W08: Introduction to Object-Oriented Programming (materials)
- Dyalog '09 C02: Introduction to Object-Oriented Programming (materials)
- Dyalog '09 C06: Source Code Management using SALT and SubVersion (part I) (materials)
- Dyalog '09 C09: Source Code Management using SALT and SubVersion (part II)
- Dyalog '10 TU3: User Commands in Dyalog APL
- Dyalog '11 C01: Introduction to Object-Oriented Programming (materials)
- Dyalog '11 C06: Windows Presentation Foundation (materials) (with Michael Hughes)
- Dyalog '11 C07: Productivity Tools for Dyalog Users (materials)
- Dyalog '12 D07: New SALT features and User Commands
- Dyalog '12 C02: User Commands (materials)
- Dyalog '12 C07: Starting a New Application in Dyalog APL (materials) (with Morten Kromberg)
- Dyalog '12 C09: Managing External Data III (materials) (with Gitte Christensen)
- Dyalog '13 D15: User Command Update (slides)
- Dyalog '13 SA03: OO and CC
- Dyalog '13 SP03: User Commands
- Dyalog '14 SA03: Parallel Programming with Futures and Isolates (materials) (with Morten Kromberg)
- Dyalog '14 SP02: The Ins and Outs of Data (SQAPL, XML, JSON, Excel, Syncfusion Data Objects, ZIP files, …) (materials) (with Brian Becker)
- Dyalog '14 TP04: Version 14.0 Language Features in Practice (slides)
- Dyalog '15 D05: User Commands Update (with Adám Brudzewsky)
- Dyalog '15 D10: MiServer UI Controls (slides) (with Adám Brudzewsky)
- Dyalog '16 D04: Tools Group Update (with Brian Becker and Adám Brudzewsky)
- Dyalog '16 TP01: Version 15.0 in Depth
References
- ↑ Rick Procter. Obituary for Daniel Baronet. APL Borealis.
- ↑ Roger Hui. Tribute to Daniel Baronet. DanielBaronet.RIP
- ↑ Stack User "Dennis". Answer in Dyalog APL to Adám Brudzewsky's code golf challenge. Code Golf and Coding Challenges Stack Exchange.
APL community [edit] | |
---|---|
Activities | Conferences ∙ User groups and meetups ∙ Iverson Award ∙ Exercises |
Chat rooms and forums | APL Farm ∙ APL Orchard ∙ APL Wiki |
People | Phil Abrams ∙ Brian Becker ∙ Bob Bernecky ∙ Larry Breed ∙ Charles Brenner ∙ Jim Brown ∙ Adám Brudzewsky ∙ Gitte Christensen ∙ Peter Donnelly ∙ John Earnest ∙ Adin Falkoff ∙ Garth Foster ∙ Lib Gibson ∙ Aaron Hsu ∙ Roger Hui ∙ Ken Iverson ∙ Morten Kromberg ∙ Dick Lathwell ∙ Marshall Lochbaum ∙ Eugene McDonnell ∙ Roger Moore ∙ Trenchard More ∙ Alan Perlis ∙ Raghu Ranganathan ∙ Henry Rich ∙ Al Rose ∙ John Scholes ∙ Ian Sharp ∙ Bob Smith ∙ Geoff Streeter ∙ Joey Tuttle ∙ Arthur Whitney |
Other | APL Trust ∙ APL Quote Quad ∙ Blogs ∙ Books ∙ Case studies ∙ Famous APL users ∙ Humour ∙ Jobs ∙ Merchandise ∙ Papers ∙ Podcasts ∙ TryAPL ∙ Try It Online ∙ Video channels |