I think you should re-read Henry's message that you were responding to here.
By the time any J function can run, it's already too late. -- Raul On Mon, Aug 14, 2023 at 12:58 PM Ak O <akin...@gmail.com> wrote: > > What expression allows a function to recieve an argument 'y' as a literal > without using quotes? > > Below are two deficient functions. > The size of the vector is given by 'x'. The permutation > index is meant to be given by 'y'. > > My intention is treat 'y' as a literal, without needing to use quotes on > the input. > > This first function works by escaping to the keyboard for input > I would like rather for the function to receive the input from the raw > argument and not have to escape to the keyboard. > > Desired Input > 30 extd 180548043269214561950911457875657 > Rather than > 30 extd '180548043269214561950911457875657' > > > This function is deficient by its operating sequence. > It escapes to keyboard, which preservs the literal type. > > extd =: 4 : 0 > n=. ((1!:1) 1 > ((".@,&'x' n)) A. i. x > ) > > 30 extd 180548043269214561950911457875657 > > Keyboard input (if this approach makes sense, can the keyboard input be > simulated by using y as the feed?) > 180548043269214561950911457875657 > > Result > 20 12 4 29 7 17 22 11 2 27 28 23 6 21 9 3 24 10 26 13 15 1 18 8 25 19 0 5 > 16 14 > > > > Alternative deficient function by the input form. > Yields the correct result but uses quotes in the input. > > extdquotes =: 4 : 0 > ((".@,&'x' n)) A. i. x > ) > > 30 extdquotes '180548043269214561950911457875657' > > Result > 20 12 4 29 7 17 22 11 2 27 28 23 6 21 9 3 24 10 26 13 15 1 18 8 25 19 0 5 > 16 14 > > > I am looking for the function that uses the input for extd that delivers > the result of extdquotes > > > Thank you for your help > Ak > > > On Sat., Aug. 12, 2023, 13:43 Henry Rich, <henryhr...@gmail.com> wrote: > > > It's like this: > > > > /long-number/ is a single word. If the length is <19 digits, it is an > > integer, otherwise a float (which necessarily has only 16 digits of > > precision). > > > > /long-number/x is a single word, but it is always an extended integer, > > and every digit of /long-number/ is preserved. > > > > x: /number/ is two words. /number/ is evaluated first, and then x: is > > applied to its value to give an extended integer. > > > > In that last case, if /number/ has more than 19 digits, it will have > > been represented as a float, and the extended integer will have only 16 > > digits of precision. > > > > Henry Rich > > > > On 8/12/2023 3:25 PM, Ak O wrote: > > > My thought was that 'x' must always be extended by definition. > > > > > > I was trying to think what cases this operator's 'x' argument would not > > be > > > strictly extended. > > > > > > Chris demonstrated that the input 'x' in my example is float by > > > construction. > > > > > > Raul explained that the parser treats the number before it treats the > > > operator ( if I have understood his message correctly). > > > > > > So if I have understood all of this correctly. As a raw input, it is the > > > extended representation of the float input 'x' that is actually what is > > > being operated on by A. to yield the result. > > > > > > > > > > > > Ak > > > > > > > > > On Sat., Aug. 12, 2023, 11:34 Henry Rich, <henryhr...@gmail.com> wrote: > > > > > >> I misunderstood your question. > > >> > > >> (x A. y) starts by verifying that (*./ (|x) < !.#y) and then converts x > > >> to a permutation with > > >> (i.@-&.<: y) #: x > > >> (all in extended precision if x is extended), followed by a number of > > >> rotations within an index vector. It is much less work to start with > > >> the permutation vector rather than the anagram index. > > >> > > >> Henry Rich > > >> > > >> On 8/11/2023 8:29 PM, Ak O wrote: > > >>> For me, > > >>> (x: y) > > >>> does not preserve the input. > > >>> > > >>> The result I get is not the same. > > >>> > > >>> > > >>> ( x:180548043269214561950911457875657 ) > > >>> 180548043269214573494164592263168 > > >>> This does not work. > > >>> > > >>> > > >>> > > >>> 180548043269214561950911457875657x > > >>> 180548043269214561950911457875657 > > >>> This does work. > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> On Fri., Aug. 11, 2023, 13:01 Henry Rich, <henryhr...@gmail.com> > > wrote: > > >>> > > >>>> (x: value) produces extended version of value. > > >>>> > > >>>> Henry Rich > > >>>> > > >>>> On Fri, Aug 11, 2023, 2:44 PM Ak O <akin...@gmail.com> wrote: > > >>>> > > >>>>> Hi everybody, I hope you are all well. > > >>>>> > > >>>>> I have a question about the Anagram ( A. ) operator. > > >>>>> > > >>>>> In a defined function, how do I designate that an input 'x' is > > >> treatment > > >>>>> as extended datatype rather than float? > > >>>>> > > >>>>> Where being defined: > > >>>>> 13 : ' x A. i.y' > > >>>>> [ A. [: i. ] > > >>>>> > > >>>>> is to be taken as, > > >>>>> 13 : 'X_INPUTx A. y' NB. 12345672345467x A. i.y > > >>>>> > > >>>>> How do I get the affect of catenating an 'x' to the end of a number > > in > > >> a > > >>>>> defined function? > > >>>>> > > >>>>> If you understand my question ignore below, otherwise I give an > > >> example. > > >>>>> Thank you for your thoughts. > > >>>>> > > >>>>> Ak > > >>>>> > > >>>>> > > >>>>> My understanding of the Anagram operator (A.). > > >>>>> The vocabulary reference page (acapdot) gives the product of the > > >> Anagram > > >>>>> index function > > >>>>> A. y > > >>>>> as datatype extended. > > >>>>> > > >>>>> > > >>>>> The Anagram function > > >>>>> x A. y > > >>>>> applies the permutation map (x) on ordered vector sequence (y) as > > >> below. > > >>>>> > > >>>>> ] vector_sequence =: ?~30 > > >>>>> 20 12 4 29 7 17 22 11 2 27 28 23 6 21 9 3 24 10 26 13 15 1 18 8 25 19 > > >> 0 5 > > >>>>> 16 14 > > >>>>> > > >>>>> > > >>>>> ] vector_anagram =: A. vector_sequence > > >>>>> 180548043269214561950911457875657 > > >>>>> > > >>>>> The Noun, vector_anagram will have datatype extended, given by: > > >>>>> datatype vector_anagram > > >>>>> extended > > >>>>> > > >>>>> Applying the vector_anagram on a vector using the command: > > >>>>> vector_anagram A. i.30 > > >>>>> 20 12 4 29 7 17 22 11 2 27 28 23 6 21 9 3 24 10 26 13 15 1 18 8 25 19 > > >> 0 5 > > >>>>> 16 14 > > >>>>> > > >>>>> The expected result. > > >>>>> > > >>>>> In a case where the digits are input on there own, the following > > fails > > >>>> with > > >>>>> 'domain error, executing dyad A.' > > >>>>> > > >>>>> 180548043269214561950911457875657 A. i.30 > > >>>>> > > >>>>> One approach is to place 'x:' before the input. > > >>>>> ( x:180548043269214561950911457875657 )A. i.30 > > >>>>> 20 12 4 29 7 17 22 11 2 27 28 25 1 8 0 15 16 14 3 5 19 26 18 6 21 23 > > 13 > > >>>> 24 > > >>>>> 9 10 > > >>>>> > > >>>>> This is not the expected result. > > >>>>> > > >>>>> The input is treated as 180548043269214573494164592263168. > > >>>>> > > >>>>> ( x:180548043269214561950911457875657 ) > > >>>>> 180548043269214573494164592263168 > > >>>>> > > >>>>> Not the input I thought I was applying. > > >>>>> > > >>>>> An alternative is to postfix an 'x' to the end of the input. > > >>>>> 180548043269214561950911457875657x A. i.30 > > >>>>> 20 12 4 29 7 17 22 11 2 27 28 23 6 21 9 3 24 10 26 13 15 1 18 8 25 19 > > >> 0 5 > > >>>>> 16 14 > > >>>>> > > >>>>> The expected result. But how do I achieve this for a defined > > function. > > >>>>> > > >>>>> Does not work either. > > >>>>> ".@((":vector_anagram),x')"_ NB. same as x: > > >>>>> > > >>>>> > > >>>>> Maybe there is a symbol that 13 : can be recognize to trigger the > > >>>> extended > > >>>>> datatype. > > >>>>> > > >>>>> > > >>>>> > > >>>>> Thank you for your help. > > >>>>> > > >>>>> Ak > > >>>>> > > ---------------------------------------------------------------------- > > >>>>> For information about J forums see > > http://www.jsoftware.com/forums.htm > > >>>>> > > >>>> ---------------------------------------------------------------------- > > >>>> For information about J forums see > > http://www.jsoftware.com/forums.htm > > >>>> > > >>> ---------------------------------------------------------------------- > > >>> For information about J forums see http://www.jsoftware.com/forums.htm > > >> ---------------------------------------------------------------------- > > >> For information about J forums see http://www.jsoftware.com/forums.htm > > >> > > >> > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm