2023-6: Key/Value Pairs
Representing data as key/value pairs (also known as name/value pairs) is a very common technique. For example, it can be found in query strings in HTTP URIs, attribute settings in HTML elements, and in JSON objects. One common representation for a key/value pair is to have a character key (name) followed by an equals sign (=) followed by the value. Multiple key/value pairs can be separated by a delimiter character or characters. For example:
key1=value1;key2=value2
Write a function that:
- takes a 2-element character vector left argument where the first element represents the separator character between multiple key/value pairs and the second element represents the separator between the key and the value for each pair.
- takes a character vector right argument representing a valid set of key/value pairs (delimited as specified by the left argument).
- returns a 2-column matrix where the first column contains the character vector keys of the key/value pairs and the second column contains the character vector values.
Note: You may assume that there will be no empty names or values in the right argument.
Hint: The partition function ⊆ could be helpful in solving this problem.
Examples:
⍴ ⎕← ' =' (your_function) 'language=APL dialect=Dyalog' ┌────────┬──────┐ │language│APL │ ├────────┼──────┤ │dialect │Dyalog│ └────────┴──────┘ 2 2 ⍴ ⎕← ';:' (your_function) 'duck:donald' ┌────┬──────┐ │duck│donald│ └────┴──────┘ 1 2 ⍴ ⎕← '/:' (your_function) 'name:Morten/name:Brian/name:Adám' ┌────┬──────┐ │name│Morten│ ├────┼──────┤ │name│Brian │ ├────┼──────┤ │name│Adám │ └────┴──────┘ 3 2
your_function ←
Solutions

