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

Reply via email to