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