Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
22
Task/Tokenize-a-string/Logtalk/tokenize-a-string.logtalk
Normal file
22
Task/Tokenize-a-string/Logtalk/tokenize-a-string.logtalk
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
:- object(spliting).
|
||||
|
||||
:- public(convert/2).
|
||||
:- mode(convert(+atom, -atom), one).
|
||||
|
||||
convert(StringIn, StringOut) :-
|
||||
atom_chars(StringIn, CharactersIn),
|
||||
phrase(split(',', Tokens), CharactersIn),
|
||||
phrase(split('.', Tokens), CharactersOut),
|
||||
atom_chars(StringOut, CharactersOut).
|
||||
|
||||
split(Separator, [t([Character| Characters])| Tokens]) -->
|
||||
[Character], {Character \== Separator}, split(Separator, [t(Characters)| Tokens]).
|
||||
split(Separator, [t([])| Tokens]) -->
|
||||
[Separator], split(Separator, Tokens).
|
||||
split(_, [t([])]) -->
|
||||
[].
|
||||
% the look-ahead in the next rule prevents adding a spurious separator at the end
|
||||
split(_, []), [Character] -->
|
||||
[Character].
|
||||
|
||||
:- end_object.
|
||||
Loading…
Add table
Add a link
Reference in a new issue