有限リンクトリストの長さ,複製,最後の要素,最後だけ除いたもの
sub Llength{#長さ my $l=shift; my $len=0; return 0 unless Lhead($l); return Llength(Ltail($l))+1; } sub Lduplicate{#複製 my $l=shift; return [Lhead($l),undef] unless Ltail($l); return [Lhead($l),Lduplicate(Ltail($l))]; } sub Llast{#最後の要素 my $l=shift; return Lhead($l) unless Ltail($l); Llast(Ltail($l)); } sub Linit{#最後の要素だけ削除,tailの逆 my $l=shift; return undef unless Ltail($l); return [Lhead($l),Linit(Ltail($l))]; }
みる人がみたら何を構成してるのかは自明でしょう.まだreverseやtake,foldの類がありません.
あと,head/tailなどは名前を変えました.