fields/ library predicate, to return empty fields.
This commit is contained in:
@@ -5,6 +5,8 @@
|
||||
scan_integer/3,
|
||||
split/2,
|
||||
split/3,
|
||||
fields/2,
|
||||
fields/3,
|
||||
glue/3,
|
||||
copy_line/2,
|
||||
filter/3,
|
||||
@@ -69,6 +71,28 @@ split(SplitCodes, [C|New], Set) -->
|
||||
split(SplitCodes, New, Set).
|
||||
split(_, [], []) --> [].
|
||||
|
||||
fields(String, Strings) :-
|
||||
fields(" ", Strings, String, []).
|
||||
|
||||
fields(String, FieldsCodes, Strings) :-
|
||||
dofields(FieldsCodes, First, More, String, []),
|
||||
(
|
||||
First = [], More = []
|
||||
->
|
||||
Strings = []
|
||||
;
|
||||
Strings = [First|More]
|
||||
).
|
||||
|
||||
dofields(FieldsCodes, [], New.More) -->
|
||||
[C],
|
||||
{ member(C, FieldsCodes) }, !,
|
||||
dofields(FieldsCodes, New, More).
|
||||
dofields(FieldsCodes, [C|New], Set) -->
|
||||
[C], !,
|
||||
dofields(FieldsCodes, New, Set).
|
||||
dofields(_, [], []) --> [].
|
||||
|
||||
glue([], _, []).
|
||||
glue([A], _, A) :- !.
|
||||
glue([H|T], [B|_], Merged) :-
|
||||
|
Reference in New Issue
Block a user