[Question]
  [
## A celebration of the many faces of APL
Given a string among those in column 1 or column 2 of the below table, return the string's neighbor to its right. In other words, if given a string in column 1 then return column 2's string on that row, and if given a string in column 2 then return column 3's string on that row.
The codepoints (other than [`:`](http://help.dyalog.com/15.0/Content/Language/Defined%20Functions%20and%20Operators/DynamicFunctions/Guards.htm)'s) are listed on the far right.
column 1   column 2   column 3  
 [`:⊢`](http://help.dyalog.com/15.0/Content/Language/Symbols/Right%20Tack.htm) → [`⍡`](http://wiki.nars2000.org/index.php/Convolution) → [`⊣:`](http://help.dyalog.com/15.0/Content/Language/Symbols/Left%20Tack.htm#kanchor3371)   U+22a2 U+2361 U+22a3  
 `:▷` → [`⍢`](http://www.jsoftware.com/papers/APLDesignExercises1.htm#39) → `◁:`   U+25b7 U+2362 U+25c1  
 [`:⋆`](http://microapl.com/apl_help/ch_020_020_200.htm) → [`⍣`](http://help.dyalog.com/15.0/Content/Language/Symbols/DieresisStar.htm) → [`⋆:`](http://microapl.com/apl_help/ch_020_020_200.htm)   U+22c6 U+2363 U+22c6  
 [`:∘`](http://help.dyalog.com/15.0/Content/Language/Symbols/Jot.htm) → [`⍤`](http://help.dyalog.com/15.0/Content/Language/Symbols/Jot%20Diaresis.htm#kanchor3364) → [`∘:`](http://help.dyalog.com/15.0/Content/Language/Symbols/Jot.htm)   U+2218 U+2364 U+2218  
 [`:○`](http://help.dyalog.com/15.0/Content/Language/Symbols/Circle.htm) → [`⍥`](http://jsoftware.com/papers/APLDictionary1.htm#hoof) → [`○:`](http://help.dyalog.com/15.0/Content/Language/Symbols/Circle.htm)   U+25cb U+2365 U+25cb  
 `:≀` → [`⍨`](http://help.dyalog.com/15.0/Content/Language/Primitive%20Operators/Commute.htm) → `≀:`   U+2240 U+2368 U+2240  
 [`:∧`](http://help.dyalog.com/15.0/Content/Language/Primitive%20Functions/And%20Lowest%20Common%20Multiple.htm) → [`⍩`](http://jsoftware.com/papers/APLDictionary1.htm#withe) → [`∨:`](http://help.dyalog.com/15.0/Content/Language/Primitive%20Functions/Or%20Greatest%20Common%20Divisor.htm)   U+2227 U+2369 U+2228
*Anecdote:* Most of these symbols are valid or proposed in some APL dialect (they are all links).
Per request, just the symbols:
```
:⊢ ⍡ ⊣:
:▷ ⍢ ◁:
:⋆ ⍣ ⋆:
:∘ ⍤ ∘:
:○ ⍥ ○:
:≀ ⍨ ≀:
:∧ ⍩ ∨:
```
  
[Answer]
## JavaScript (ES6), ~~108~~ 107 bytes
```
s=>(S="⊢▷⋆∘○≀∧⍡⍢⍣⍤⍥⍨⍩⊣◁⋆∘○≀∨")[S.search(s[1]||s)+7]+(s[1]?'':':')
```
### Demo
```
let f =
s=>(S="⊢▷⋆∘○≀∧⍡⍢⍣⍤⍥⍨⍩⊣◁⋆∘○≀∨")[S.search(s[1]||s)+7]+(s[1]?'':':')
;[
  ":⊢", ":▷", ":⋆", ":∘", ":○", ":≀", ":∧",
  "⍡", "⍢", "⍣", "⍤", "⍥", "⍨", "⍩"
]
.forEach(s => console.log(s + ' → ' + f(s)))
```
[Answer]
# [Python 3](https://docs.python.org/3/), 105 bytes
```
lambda s:":⊢⍡⊣:▷⍢◁:⋆⍣⋆:∘⍤∘:○⍥○:≀⍨≀:∧⍩∨:".split(s)[1][:3-len(s)]
```
[Try it online!](https://tio.run/##Tc49asNAEAXgWnuKwZUWFENQN7Cn2FJWsbJlLFAU4RWEdHFj/MO2sVtbNpZPkPvMRZSZVGkevJmBb9rPbvXepOPSzMbavRULBx4nSIcrhQsdeqTvHwpXOm2QjlsKPSfS7kzhxol0OlK4cyLtvygMnLx9UHjSbsDJ1Ld11cVeZ695hulLXTZc8tGaPwLYAEFAGG48YQiE4taDYCActxsICEJyu4OgICy3AQSWywe3J/zHtVIfq6ouwaKKXFIkczBg@ZtcRe26arrYJcvYaY5Caz7xvlx3ICNjCnDNAmRjzFxF1tgsxXz8BQ "Python 3 – Try It Online")
[Answer]
# [C# (.NET Core)](https://www.microsoft.com/net/core/platform), 148 134 bytes
```
s=>{var c="⊢⍡⊣▷⍢◁⋆⍣⋆∘⍤∘○⍥○≀⍨≀∧⍩∨";return c[c.IndexOf(s[s.Length-1])+1]+(s.Length<2?":":"");}
```
[Try it online!](https://tio.run/##Sy7WTc4vSv2vAATJOYnFxQoBRfnpRYm5XCCRajAJAsUliSWZyQpl@ZkpCr6JmXkamnAphCIQCK4sLknN1XMrzUu2KS4pysxL11GA0HYKaQq2XP@Lbe2qyxKLFJJtlR51LXrUu/BR1@JH07Y/6l30aHrjo@62R72LQWTHjEe9S0Dk9O5HvUtBZGfDo94VILJj@aPelY86VihZF6WWlBblKSRHJ@t55qWkVvinaRRHF@v5pOall2ToGsZqahvGamvABGyM7JWsgFBJ07r2vzUXNmc75@cV5@ek6oUXZZak@mTmpWqkaShZAZ2npKlpTbQGoMtJUm8FDAgSLViJor4WzKr9DwA "C# (.NET Core) – Try It Online")
* 14 bytes saved after golfing a little.
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), 56 [bytes](https://github.com/DennisMitchell/jelly/wiki/Code-page)
```
“¤'aẎṚl’b4ạ37ż“ɱaɲṢbḊİcİðdðṖeṖ@h@'i(‘ḅ⁹Ọɓi@€Ṁ‘ị;⁸LḂx@”:¤
```
A full program.
**[Try it online!](https://tio.run/##y0rNyan8//9Rw5xDS9QTH@7qe7hzVs6jhplJJg93LTQ2P7oHKHNyY@LJTQ93Lkp6uKPryIbkIxsOb0g5vOHhzmmpQOyQ4aCeqfGoYcbDHa2PGnc@3N1zcnKmw6OmNQ93NoBEd3dbP2rc4fNwR1OFw6OGuVaHlvw/uudwO1BBFhA/atynoJD1qHHv0cmxQK2HlhxaEvn/f7SS1aOuRUo6CkqPeheCKKtH07ZDuIsg3O42CHcxhNsxA8JdAuFO74Zwl0K4nQ0Q7gqo4uUQ7kqlWAA "Jelly – Try It Online")**
*Note:* (`ɱaɲ`!) While there is some pattern to the non-`:` ordinals (middle column almost consecutive, many left and rights being the same - only two off by one and one off by ten) it just does not seem quite enough for such a small data set to allow any byte saves over this.
The first thirteen bytes could also be `“¡ÐɼU¹’ṃ“"%#‘`.
### How?
```
“¤'aẎṚl’b4ạ37ż“ ... ‘ḅ⁹Ọɓi@€Ṁ‘ị;⁸LḂx@”:¤ - Main link: list of characters, frown
“¤'aẎṚl’                                 - base 250 number = 4064044420859
        b4                               - to base 4 = [3, 2, 3, 0, 2, 0, 3, 2, 3, 3, 2, 3, 0, 2, 0, 3, 2, 3, 3, 2, 3]
          ạ37                            - absolute diffence with 37 = [34, 35, 34, 37, 35, 37, 34, 35, 34, 34, 35, 34, 37, 35, 37, 34, 35, 34, 34, 35, 34]
              “ ... ‘                    - code page indexes = [162, 97, 163, 183, 98, 193, 198, 99, 198, 24, 100, 24, 203, 101, 203, 64, 104, 64, 39, 105, 40]
             ż                           - zip together = [[34, 162], [35, 97], [34, 163], [37, 183], [35, 98], [37, 193], [34, 198], [35, 99], [34, 198], [34, 24], [35, 100], [34, 24], [37, 203], [35, 101], [37, 203], [34, 64], [35, 104], [34, 64], [34, 39], [35, 105], [34, 40]]
                      ⁹                  - literal 256
                     ḅ                   - convert from base = [8866, 9057, 8867, 9655, 9058, 9665, 8902, 9059, 8902, 8728, 9060, 8728, 9675, 9061, 9675, 8768, 9064, 8768, 8743, 9065, 8744]
                       Ọ                 - convert to characters = "⊢⍡⊣▷⍢◁⋆⍣⋆∘⍤∘○⍥○≀⍨≀∧⍩∨"
                        ɓ                - dyadic chain separation, call that smiles
                         i@€             - first index of €ach frown character in smiles
                            Ṁ            - maximum (any ':' was not found so yielded 0)
                             ‘           - increment
                              ị          - index into smiles
                                       ¤ - nilad followed by link(s) as a nilad
                                ⁸        -   chain's left argument, frown
                                 L       -   length
                                  Ḃ      -   mod 2
                                     ”:  -   literal ':'
                                   x@    -   repeat with swapped @rguments
                               ;         - concatenate
                                         - implicit print
```
---
Employing [Emigna's 05AB1E method of compression](https://codegolf.stackexchange.com/a/127828/53748) saves three for **53 bytes**:
```
“ȤỤ.ḍṅfḲBṆ µṾḢƲ¿ṭVÄ⁹L5ı;ṡaÐ’Ds3Ḍ+⁽œẉỌɓi@€Ṁ‘ị;⁸LḂx@”:¤
```
[Try it online!](https://tio.run/##AXsAhP9qZWxsef//4oCcyKThu6Qu4biN4bmFZuG4skLhuYYgwrXhub7huKLGssK/4bmtVsOE4oG5TDXEsTvhuaFhw5DigJlEczPhuIwr4oG9xZPhuonhu4zJk2lA4oKs4bmA4oCY4buLO@KBuEzhuIJ4QOKAnTrCpP///zriiKc)
[Answer]
# [Python 3](https://docs.python.org/3/), ~~140~~ ~~137~~ 116 bytes
```
lambda n,x=":⊢⍡⊣:▷⍢◁:⋆⍣⋆:∘⍤∘:○⍥○:≀⍨≀:∧⍩∨:":x[x.find(n)+len(n):x.find(n)+3]
```
[Try it online!](https://tio.run/##K6gsycjPM/6fZhvzPycxNyklUSFPp8JWyepR16JHvQsfdS22ejRt@6PeRY@mN1o96m571LsYSFo96pjxqHcJkLR6NL37Ue9SIGn1qLPhUe8KIAmUXf6od@WjjhVWSlYV0RV6aZl5KRp5mto5qXlAygohYBz7v6AoM69EI01DHahXXVPzPwA "Python 3 – Try It Online")
[Answer]
# [05AB1E](https://github.com/Adriandmen/05AB1E), ~~58~~ ~~56~~ 54 [bytes](https://github.com/Adriandmen/05AB1E/blob/master/docs/code-page.md)
```
• î]D£Èтн»“¿āp÷ŒRÃÙŽ^мηWX·ć•3ô8728+çJ3ô':ý':.øI¡`3Ig-£
```
[Try it online!](https://tio.run/##AWIAnf8wNWFiMWX//@KAoiDDrl1EwqPDiNGC0L3Cu@KAnMK/xIFww7fFklLDg8OZxb1e0LzOt1dYwrfEh@KAojPDtDg3Mjgrw6dKM8O0JzrDvSc6LsO4ScKhYDNJZy3Co///OuKLhg "05AB1E – Try It Online")
**Explanation**
```
• î]D£Èтн»“¿āp÷ŒRÃÙŽ^мηWX·ć•  # push a 63-digit base-255 compressed number
3ô                            # split in pieces of 3
  8728+                       # add 8728 to each
       çJ                     # convert to a string with the corresponding code points
         3ô                   # split in pieces of 3
           ':ý                # merge on ":"
              ':.ø            # surround with ":"
                  I¡          # split on input
                    `         # push as separate to stack, the tail on top
                     3Ig-£    # take the first 3-len(input) characters
```
The above method should work with any number in the range `[8676 ... 8728]`, so if I can find a number there that can be generated in 3 bytes I could save a byte over the current solution.
[Answer]
# [PHP](https://php.net/), 147 bytes
```
<?=($f=array_flip($y=str_split(⍣⋆⍤∘⍥○⍨≀∧⍩∨⊢⍡⊣▷⍢◁,3))[trim($argn,":")])>7?$y[$f+1].":"[$f%3>1]:$y[$f^1].":"[$f&1];
```
[Try it online!](https://tio.run/##PZDBSsMwHMbveQqJURKsQtlB6Gz7IF0cobRrYbYh7aWIoBeZG16dVzfF@QS@T97Bc/34C15Cfh/h933EVna8Sm1lWdm6wuSVzBiP/HrHA@6f33BG/uWbYEeweSTYE6xeCd4JthuCD4Kne4LD37NPgi/OtOmEcYtGsVuWJmiOpShj45wZ5uWytlIMcde7eWeXdS9Rgz74UQQxGmCEGkLY/OqAnRjp13tsxEC/fQgmSmW9q28k9aCdK62Sy1QMmSjPQn2BBLeTSRLqiMLr//A01NOxyKv2iB3zWU8GHjA@a/j0bvxp2vMcP1T8Ag "PHP – Try It Online")
[Answer]
# [APL (Dyalog Unicode)](https://www.dyalog.com/), 103 bytes
-17 bytes thanks to Adám
```
(⌷∘S,':'/⍨14∘<)7+(S←'⊢▷⋆∘○≀∧⍡⍢⍣⍤⍥⍨⍩⊣◁⋆∘○≀∨')⍳⊢/
```
[Try it online!](https://tio.run/##SyzI0U2pTMzJT///X@NRz/ZHHTOCddSt1PUf9a4wNAHybDTNtTWCH7VNUH/UtejRtO2PutuAoo@mdz/qbHjUsfxR78JHvYse9S5@1LvkUe9SoK5HvSsfdS1@NL0RVeUKdc1HvZuBZuj/TwOa9qi371FX86PeNY96txxab/yobeKjvqnBQc5AMsTDM/h/moK6FVCxOleaAowJAA "APL (Dyalog Unicode) – Try It Online")
# [APL (Dyalog Unicode)](https://www.dyalog.com/), 118 bytes
Since the asker is an APL programmer...
```
{(':'/⍨14<X),⍨S⌷⍨X←7+⍸(S←'⊢▷⋆∘○≀∧⍡⍢⍣⍤⍥⍨⍩⊣◁⋆∘○≀∨')∘.=⊢/⍵}
```
[Try it online!](https://tio.run/##VU07CsJAFLyK3Sb4QxQE0cpGW9cibUBiE9BWRFCEJW58QQuNrYliBMFGibVHmYusr7WZD8zHnfrl0cz1J2Nj5pZoiSooqzXajl1iIbHNmRyoXbMI@liSlYBOcMwRKgQnxCE2SwQ30BmUgFLQBXTlFugOnSJe/SczYbOrdHiFv94L4/EmKIJegx6g1/dZh9ojOshBl3HY60vjFQQfiB8 "APL (Dyalog Unicode) – Try It Online")
## Explanation
```
S←'⊢▷⋆∘○≀∧⍡⍢⍣⍤⍥⍨⍩⊣◁⋆∘○≀∨'        ⍝ S is the lookup table.
⍸()∘.=⊢/⍵                             ⍝ Find the input in this LUT.
X←7+                                  ⍝ Add the index by 7 and assign to X. 
S⌷⍨                                  ⍝ Index into the LUT.
,⍨                                   ⍝ Append:
':'/                                 ⍝ The colon 
(⍨14<X)                              ⍝ if X is larger than 14.
```
]