Thanks for your kindly help!
The thing confuses me is what exact data type $L is in the given question?
The test data set would be something like [ 3,2,2,3,3,3,1 ]. I don't understand how the data set get passed into @_ and assigned to $L. [ 3,2,2,3,3,3,1 ] seems like an anonymous array to me if assigned to a $scalar . Could you tell me how it assigned to @_ and $L ? | [reply] |
In common with others, I'm not sure how this question relates to your OP ([ 3,2,2,3,3,3,1 ] doesn't look like a linked list to me, either), but I can answer your specific questions.
... what exact data type [is] $L ...
$L is a scalar. This is determined by the $ sigil before the symbol.
... how [does] the data set get passed into @_ and assigned to $L.
The expression [ 3,2,2,3,3,3,1 ] returns a reference (to an array). A reference is always a scalar value even though the referent, e.g., an array or hash, is not. A scalar is passed to a subroutine in the usual way:
c:\@Work\Perl>perl -wMstrict -le
"my $arrayref = [ 3,2,2,3,3,3,1 ];
;;
sub func {
my ($msg, $ar) = @_;
;;
printf qq{$msg: scalar ref: $ar };
printf qq{'$_' } for @$ar;
printf qq{(%d elements) \n}, scalar @$ar;
}
;;
func('A', [ 9, 8, 7 ]);
func('B', $arrayref);
"
A: scalar ref: ARRAY(0x1cb226c) '9' '8' '7' (3 elements)
B: scalar ref: ARRAY(0x6fd05c) '3' '2' '2' '3' '3' '3' '1' (7 elements
+)
Update: Changed code example: added element count. Slight wording change.
Give a man a fish: <%-(-(-(-<
| [reply] [d/l] [select] |
What you show as test data seems to contradict what your assignment says what the test data would be.
Maybe you can review the assignment description and visualize the data as it is described. Note that a "dictionary" is not an "anonymous array".
| [reply] |
[ 3,[2,[2,[3,[3,[3,[1, undef ]]]]]]]].
But I fear the author if this assignment just lazily copied a task from Lisp and has no big idea what Perl is.
| [reply] [d/l] |
This seems to somewhat run counter to my interpretation of this part of the homework:
IntList is a dictionary with keys
I wouldn't interpret anonymous arrays as "dictionary with keys", especially if the keys have the names value and next.
| [reply] [d/l] [select] |