| Ruud H.G. van Tol on Sun, 12 May 2024 10:20:43 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: select()ing a Map |
On 2024-05-12 02:46, Ilya Zakharevich wrote:
I see that there is a request for a specification what should select() do on a Map. • In case when the second argument is a Map and flag is 0, the non-0 values returned by the function f should be either all scalars, or all the same non-scalar type. • In this case, the type of the non-0 values returned by f() determines the type returned by select() — when this makes sense. (Returning a scalar non-0 value is equivalent to returning a non-0 Map.) Hope this helps, Ilya
Just showing some Map-related accessors and implicit transformations:
? {
my( m= Map([ 9, "nine"; 6, "six"; [], "empty"; "two", 2; "one", 1;
"ace", 42 ]) );
print( "Map: ", m ); /* the map, in some order */
print( "Mat: ", Mat(m) ); /* same order */
print( "Vec: ", Vec(m) ); /* the keys, same order */
foreach( m, e, print("e_1: ", e[1]) ); /* other order */
}
Map: Map([6, "six"; 9, "nine"; [], "empty"; "ace", 42; "one", 1; "two", 2])
Mat: [6, "six"; 9, "nine"; [], "empty"; "ace", 42; "one", 1; "two", 2]
Vec: [6, 9, [], "ace", "one", "two"]
e_1: [[], "empty"]
e_1: [6, "six"]
e_1: [9, "nine"]
e_1: ["one", 1]
e_1: ["ace", 42]
e_1: ["two", 2]
-- Ruud