for numeric data _. is safest, but can __ be assumed as a "non natural" value
in a dictionary?
for non numeric data, i.0 ('') or a: is null.
The only easy approach is to filter x argument to { for "out of range" indexes,
and only return values that have keys.
A missing feature of !. (fit) is that it does not modify { with fill. (index
out of range could result in fills instead of error)
!. could also modify any f such that if rank of x or y is greater than the rank
of f then x f!.n y provides a fill of n. and f!.(_.;'';a:) could attempt item
fills in left to right order until there is no error from that type of fill.
The "easy approach" seems to make sense for multiple key get request. If you
are worried about any individidual key being missing, then you should pass each
key to get one at a time and then in the context of that specific key deal with
null/not found on individual basis. If you get on multiple keys, you do not
want to scan the return list for _. or nulls. Multiple key get can be used as
ORkey = use first key that was found. Use # to see if some keys were missing
(AND(all)keys). Multi-key get returns a list of "context free" values, and so
should work "the easy way". Alternatives include individual key
get/processing, and filter by key list to get a new dictionary with only the
keys found.
Filtering x for in range, means that all keynotfound get calls return i.0
regardless of type of values. (on single key get, or multi-key where all keys
passed are not found) Many/most J functions deal elegantly with i.0 as an
argument.
On Tuesday, February 8, 2022, 08:54:28 a.m. EST, Hauke Rehr
<[email protected]> wrote:
Where “null” is specified as _. right?
Am 08.02.22 um 05:27 schrieb 'Pascal Jasmin' via Programming:
> set function is a combination of JP's set or delete functionality with k/q's
> upsert, with "merge" oriented optimizations for bulk oriented upserts. To
> get JP's upsert or delete functionality, whenever value is null, delete is
> performed. This corresponds to keyhasnullvalue get kvdata returns the same
> when k is not found or associated value is null, and so (key;a:) set kvdata
> provides the same results if key is deleted as if it were associated with
> null.
--
----------------------
mail written using NEO
neo-layout.org
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm