10 lines
402 B
Prolog
10 lines
402 B
Prolog
squeeze_( [], _, [] ).
|
|
squeeze_( [A], _, [A] ).
|
|
squeeze_( [A,A|T], A, R ) :- squeeze_( [A|T], A, R ).
|
|
squeeze_( [A,A|T], B, [A|R] ) :- dif( A, B ), squeeze_( [A|T], B, R ).
|
|
squeeze_( [A,B|T], S, [A|R] ) :- dif( A, B ), squeeze_( [B|T], S, R ).
|
|
|
|
squeeze( Str, SqueezeChar, Collapsed ) :-
|
|
string_chars( Str, Chars ),
|
|
squeeze_( Chars, SqueezeChar, Result ),
|
|
string_chars( Collapsed, Result ).
|