簡體   English   中英

.Q.trp 和 bt 處理

[英].Q.trp and bt handling

我看到(在.Q.fpn中)以下技術來解析並顯示傳遞給.Q.trp function 的bt object:

q)f:{x+1}
q).Q.trp[f;`a;{'(x;y)}]
'type
  [4]  f:{x+1}
           ^
  [3]  (.Q.trp)

  [2]  .Q.trp[f;`a;{'(x;y)}]
       ^
  [0]  .Q.trp[f;`a;{'(x;y)}]
       ^

'(x;y)似乎是一種異常構建結構,但 Kx 文檔說只有兩種異常構建方式:從符號和從字符串。 看起來我們可以從(symbol; bt object)的列表中構建一個異常。

那么構造'(x;y)代表什么?

我們可以用'(x;y)構建與異常不同的東西嗎?

我的猜測是,這是最近允許添加的特定信號以及 .Q.trp/.Q.bt 功能。 看起來它僅適用於(symbol;bt object)(string;bt object) ,其他任何東西都無法識別。

q).Q.trp[{1+x};`a;{'(x;y;1)}]
'stype

output如果沒有信號返回可以存儲:

q)r:.Q.trp[{1+x};`a;{(x;y)}]

並且這種類型的信號似乎在任何情況下都有效,而不僅僅是在.Q.trp 內:

q)'("other";last r)
'other
  [2]  {1+x}
         ^
  [1]  (.Q.trp)

  [0]  r:.Q.trp[{1+x};`a;{(x;y)}]

我懷疑last r具有非常特定的格式/形狀,人們可以制造,但它似乎是一個不必要的用例。

額外的怪事:

這有效:

q)'("other";())
'other
  [0]  '("other";())
        ^

但我嘗試過的其他事情出現了奇怪的錯誤:

q)'("other";(();()))
pl0
pl0
q)
q)'("other";"abc")
srr

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM