Word wrap: Difference between revisions

m
Prolog bug fix
(Added Prolog Solution)
m (Prolog bug fix)
Line 3,601:
=={{header|Prolog}}==
{{works with|SWI Prolog}}
SWI Prolog has a built-in function named powm for this purpose.
<lang prolog>% See https://en.wikipedia.org/wiki/Line_wrap_and_word_wrap#Minimum_number_of_lines
word_wrap(String, Length, Wrapped):-
Line 3,609 ⟶ 3,610:
wrap([Space, Word|Words], Line_length, Space_left, Result, String):-
string_length(Word, Word_len),
string_length(Space, Space_len),
(Space_left < Word_len + 1Space_len ->
Space1 = '\n',
Space_left1 is Line_length - Word_len
;
Space1 = Space,
Space_left1 is Space_left - Word_len - 1Space_len
),
atomic_list_concat([String, Space1, Word], String1),
Line 3,642 ⟶ 3,644:
<pre>
Wrapped at 60 characters:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
1,777

edits