Word wrap: Difference between revisions
Content added Content deleted
(Added Wren) |
(add Standard ML) |
||
Line 5,194: | Line 5,194: | ||
ddddd |
ddddd |
||
</pre> |
</pre> |
||
=={{header|Standard ML}}== |
|||
<lang sml>fun wordWrap n s = |
|||
let |
|||
fun appendLine (line, text) = |
|||
text ^ line ^ "\n" |
|||
fun wrap (word, prev as (line, text)) = |
|||
if size line + 1 + size word > n |
|||
then (word, appendLine prev) |
|||
else (line ^ " " ^ word, text) |
|||
in |
|||
case String.tokens Char.isSpace s of |
|||
[] => "" |
|||
| (w :: ws) => appendLine (foldl wrap (w, "") ws) |
|||
end |
|||
val () = (print o wordWrap 72 o TextIO.inputAll) TextIO.stdIn</lang> |
|||
{{in}} |
|||
<pre>Lorem ipsum dolor sit amet, consectetur adipiscing elit, 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. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. |
|||
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</pre> |
|||
{{out}} |
|||
<pre>Lorem ipsum dolor sit amet, consectetur adipiscing elit, 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. Duis aute irure dolor in reprehenderit in voluptate |
|||
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint |
|||
occaecat cupidatat non proident, sunt in culpa qui officia deserunt |
|||
mollit anim id est laborum.</pre> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |