1

下面employee的姓名和电子邮件地址矩阵可以直观地看出bob电子邮件地址是bob@example.com.

┌───────┬─────────────────────┐
│alice  │alice@example.com    │
├───────┼─────────────────────┤
│bob    │bob@example.com      │
├───────┼─────────────────────┤
│charlie│charlie47@example.com│
└───────┴─────────────────────┘

但是如何根据第 1 列中的给定值以编程方式访问电子邮件地址?到目前为止我发现的最好的方法是

(⊂'bob') {(⍵[;1]⍳⍺) 2 ⌷⍵} employees

行得通,但是相当冗长——我觉得我一定错过了一种更简单的方法来做一些我认为相当普遍的事情。

关于我所缺少的任何提示?

4

2 回答 2

3
于 2019-10-06T15:10:33.563 回答
0

这似乎更长...

  A←3 2⍴('Alice')('ralice@1')('bob')('abob@2')('charlie')('gchiarli@3')
  A
Alice   ralice@1   
bob     abob@2     
charlie gchiarli@3 
  q←{C←⍺⋄0=+/D←{C≡⍵}¨↑¨B←{{w[⍵;]}¨⍳≢w←⍵}⍵:⍬⋄↑1↓↑D/B}
  ⎕fmt ('charlie') q A
┌10─────────┐
│ gchiarli@3│
└───────────┘
  ⎕fmt ('') q A
┌0─┐
│ 0│
└~─┘
  ⎕fmt ('1') q A
┌0─┐
│ 0│
└~─┘
  ⎕fmt (1) q A
┌0─┐
│ 0│
└~─┘
  ⎕fmt 1 q A
┌0─┐
│ 0│
└~─┘
  ⎕fmt 'bob' q A
┌6──────┐
│ abob@2│
└───────┘
于 2020-07-02T20:59:18.873 回答