有限リストの連結・改

リストの連結で,同じリストを連結させようとすると循環することに気がつきました.ということで,複製処理を追加です.さらに第一引数のリストを破壊してしまうことにも気がついたので修正です.

sub Lconcat{
    my $a=shift;
    my $b=shift;
    $b=Lduplicate($a) if $a eq $b;
    my $c = Lduplicate($a);
    my $d = $c;
    while (my $temp = Ltail($d)){
	$d=$temp;
    }
    $d->[1]=$b;
    return $c unless scalar @_;
    Lconcat($c,@_);
}

さらに仕様を拡張して,二つ以上のリストが与えられてもそれらを連結するようにしました.

「ふつける」のexpandPattern,わかんなくなった

ふつける」でソースは省略されているexpandPatternを,ちょっと前に練習がてら自前で実装したんですが。。。今見るとまるで分からない(-_-;;。だめだめ。parsecは忘れてるわ,そもそも自分が作った中間処理の関数が何をしてるのかが不明.コメントは冗長すぎてもしっかり書かないといけないのを,もう何度目かの再確認をしたわけでした。。。