aboutsummaryrefslogtreecommitdiff
path: root/challenge-062/richard-park/apl/SortEmailAddressesOLD.aplf
blob: 66ed0bc6fda622bd28e00072d9ee563b30bf0f75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 SortEmailAddressesOLD{
⍝ Sort email addresses ⍵ first by domain, then by mailbox
⍝ ⍺: Optional unique flag
     0 ⍝: Default, return all addresses
⍝    ⍺←1  : Return unique email addresses (case-folded domains)
⍝ ⍵: Character vector with embedded new line characters
     admat(⎕UCS 10 13)((~∊)⊆⊢) ⍝ Split by new line
     dnorm⎕C 2⊃↓⍉'@'(≠⊆⊢)1admat ⍝ Normalise domains
     dgroupdnorm(⊂⊢)admat        ⍝ Group addresses by domain
     dsort⊃⍪{(⊂⍋)}¨dgroup     ⍝ Sorted within domain
     dnorm⎕C 2⊃↓⍉'@'(≠⊆⊢)1dsort ⍝ Normalise sorted domains
     sea(⊂⍋dnorm)dsort           ⍝ Sorted Email Addresses
     ⍺:sea⌿⍨⎕C@(\'@'=)sea       ⍝ Unique only
     sea
 }