'a' < t.'' 1 2 3

|domain error

'a' < 1 2 3

|domain error

| 'a' <1 2 3


When a pyx returns an error, the content of the pyx appears unboxed? which 
seems like a bug

 2 < t.'' 1 2 3

┌─────┐

│0 0 1│

└─────┘

 f =. ('a';1;2) < t.'' &> 1 2 3

f

|domain error

4 T. ('a';1;2) < t.'' &> 1 2 3

_3 10 8

4 T. f

_3 _1000 _1000

the result for f should be 3 boxes with the first holding the error text 
(preferably the 2 line version).  The same format as if no error


  (3;1;2) < t.'' &> 1 2 3

┌─┬─┬─┐

│0│1│1│

└─┴─┴─┘


My request is to be able to "decorate (with metadata)" an ordinary box such 
that it responds to 4&T. with an error number (instead of _1001), and the 
content is likely to be error text. 


On Monday, April 11, 2022, 12:39:28 p.m. EDT, Henry Rich <[email protected]> 
wrote: 





Look at 13!:8 for your mkerr.

Good point about having more error info; but maybe debug would give even 
more?

Henry Rich

On 4/11/2022 12:33 PM, 'Pascal Jasmin' via Beta wrote:
> Could there be a foreign that generates an "error pyx"?
>
> A functional/debugless error handing/processing model.
>
> f error = error passed through.
>
> raising error function y = above error state ;  < f ; y ; x (or last 2-3 
> boxes in ar format suitable for `:6.  boxed to make 1 item for consistency 
> with monad dyad function shapes)
>
> A way to unify pyx and sequential code for "later consumption" with simple 
> error management/awareness is  (a cruder version of this non pyx)
>
> t =: t.''
> P =: 1 : ('(u y) (;<) (u ar) ` (y ar) '; ':'; '(x u y) (;<) (x ar) ` (u ar) ` 
> (y ar)')
>
> ERROR =: 0 1 0 $ _
> isErr =: ((< ERROR) -: {.@{.@:])
> E =: (`])(@.isErr)
> mkerr =: 1 : 'u :: ((ERROR ; 13!:11 ; 13!:12)@:(''''"_))'
>
>
>
> 2 + E 'a' < mkerr 1 2 3
>
> ┌┬─┬──────────────────────────────────────────┐
>
> ││3│|domain error | 2+E'a' <mkerr3 1 2 3 │
>
> └┴─┴──────────────────────────────────────────┘
>
>
> With boxes/pyxes having metadata returning an error code, being able to use 
> that "internal J metadata" would be preferable to this "roll my own 
> functional error handling".
>
> Note that some info (error position/line) in error handling  in a thread gets 
> disabled:
>
>  > 'a' < mkerr t. '' 1 2 3
>
> ┌┬─┬──────────────┐
>
> ││3│|domain error │
>
> └┴─┴──────────────┘
>
> I mentioned, user building the "calling code" along side the pyx.  This is 
> for the ultra rare condition where a retry on the code might be fruitful.  An 
> alternative would be 41&T. pyx(es) returning the "full" 13!:12 info instead 
> of this shorter one.  13!:12 linear copy of (error) text includes indent 
> hints of where in the code caused the error.
>
> Async code is going to manage a list of pyxes for further processing, often 
> ignoring (leaving in queue or removing to add to an error reporting queue) 
> those that returned errors.  The code that caused the errors is useful info, 
> because it probably has a bug.  A foreign that adds the same metadata to 
> boxes such that 4&T. can filter for "general functional errors (return 
> values)" is needed/good if only because sequential boxes can be added to 
> pyxes "further processing lists"
>
>
> On Monday, April 11, 2022, 09:01:29 a.m. EDT, Henry Rich 
> <[email protected]> wrote:
>
>
>
>
>
> Correct that 'boxes' not 'pyxes' is what 4 T. operates on.  (A pyx is
> also a box).
>
> Incorrect that a pyx turns into a box when it completes.  It's still a
> pyx, as you will see if you open it and it contains error - the error is
> signaled to you on the opening.
>
> Henry Rich
>
> On 4/10/2022 9:49 PM, 'Pascal Jasmin' via Beta wrote:
>> The argument is a box or array of boxes as documented.  _1001 is return 
>> value if not a pyx, and _1000 (completed pyx) is I think not a pyx anymore.
>>
>>
>>
>>
>>
>> On Sunday, April 10, 2022, 09:33:37 p.m. EDT, Elijah Stone 
>> <[email protected]> wrote:
>>
>>
>>
>>
>>
>> On Sun, 10 Apr 2022, Joe Bogner wrote:
>>
>>> It would be more clear I think if it said "A pyx or array of pyxes" -
>>> https://code.jsoftware.com/wiki/Vocabulary/tcapdot#dyadic.  I'm not
>>> comfortable updating the wiki with this recommendation unless others
>>> agree.
>> I think that change is sensible.  I might even shorten to simply 'array of
>>
>> pyxes'.
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>


-- 
This email has been checked for viruses by AVG.
https://www.avg.com

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to