たとえば、私は持っています:
x: (`a`b!(1;2); (); `a`b!(3;4))
を削除したいと思い()
ます。?
(マッチ)を使ってみた
x[x ? not ()]
しかし、それはちょうど与え()
ます。
正しい表現は?
バックグラウンド
peach
私は一連のクエリを実行するためによく使用しますが、多くの場合、不足しているデータが()
. ()
したがって、を削除して、素敵なテーブルに戻したいと思います。
ええと、(辞書ではなく) 既にテーブルを返している場合はraze
、空のリストを取り除くのに十分です。技術的には追加されますが、リストに空のリストを追加すると、元のリストが取得されます。テーブルは単に辞書のリストであることを思い出してください。したがって、ここでも同様です。
//I'm enlisting your dictionaries,
//so that they become tables and then raze
q)raze @[x; 0 2; enlist]
a b
---
1 2
3 4
raze f each x
orなどのスニペットraze f peach x
は非常に一般的であり、これがユースケースに最適なイディオムだと思います。
同様にexceptを使用できます:
q)x except 1#()
a b
---
1 2
3 4
() は空のリストです。したがって、カウントはゼロです。したがって、次を使用できます。
q)x where not 0 = count each x
a b
---
1 2
3 4