Word wrap: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
No edit summary |
||
Line 2,362: | Line 2,362: | ||
favorite plaything. |
favorite plaything. |
||
</pre> |
</pre> |
||
=={{header|Lambdatalk}}== |
|||
The test text will be the third first paragraphs of Jules Verne's book, The Mysterious Island. |
|||
<lang scheme> |
|||
{def text |
|||
Personne n’a sans doute oublié le terrible coup de vent de nord-est qui se déchaîna au milieu de l’équinoxe de cette année, et pendant lequel le baromètre tomba à sept cent dix millimètres. Ce fut un ouragan, sans intermittence, qui dura du 18 au 26 mars. Les ravages qu’il produisit furent immenses en Amérique, en Europe, en Asie, sur une zone large de dix-huit cents milles, qui se dessinait obliquement à l’équateur, depuis le trente-cinquième parallèle nord jusqu’au quarantième parallèle sud ! (L’île mystérieuse / Jules Verne)} |
|||
-> text |
|||
</lang> |
|||
1) lambdatalk can simply call HTML tags and CSS rules: |
|||
<lang scheme> |
|||
{def wrap1 |
|||
{lambda {:n} |
|||
pre {@ style="width::npx; // the line width |
|||
white-space:pre-wrap; "}}} // the word-wrap rule |
|||
-> wrap1 |
|||
{{wrap1 380} {text}} |
|||
-> |
|||
Personne n’a sans doute oublié le |
|||
terrible coup de vent de nord-est qui se déchaîna |
|||
au milieu de l’équinoxe de cette année, et pendant |
|||
lequel le baromètre tomba à sept cent dix |
|||
millimètres. Ce fut un ouragan, sans |
|||
intermittence, qui dura du 18 au 26 mars. Les |
|||
ravages qu’il produisit furent immenses en |
|||
Amérique, en Europe, en Asie, sur une zone large |
|||
de dix-huit cents milles, qui se dessinait |
|||
obliquement à l’équateur, depuis le |
|||
trente-cinquième parallèle nord jusqu’au |
|||
quarantième parallèle sud ! (L’île mystérieuse / |
|||
Jules Verne) |
|||
</lang> |
|||
2) a lambdatalk function |
|||
A translation from the Kotlin entry: |
|||
<lang scheme> |
|||
{def wrap2 |
|||
{def wrap2.r |
|||
{lambda {:linewidth :arr :spaceleft :sb} |
|||
{if {A.empty? :arr} |
|||
then {S.rest :sb} |
|||
else {let { {:linewidth :linewidth} |
|||
{:arr :arr} |
|||
{:spaceleft :spaceleft} |
|||
{:word {A.first :arr}} |
|||
{:length {W.length {A.first :arr}}} |
|||
{:sb :sb} |
|||
} {wrap2.r :linewidth |
|||
{A.rest :arr} |
|||
{if {> {+ :length 1} :spaceleft} |
|||
then {- :linewidth :length} :sb{br}:word |
|||
else {- :spaceleft {+ :length 1}} :sb :word} }}}}} |
|||
{lambda {:linewidth :text} |
|||
{wrap2.r :linewidth |
|||
{A.new :text} |
|||
{- :linewidth {W.length {S.get 0 :text}}} |
|||
#}}} |
|||
-> wrap2 |
|||
{wrap2 70 {text}} -> |
|||
Personne n’a sans doute oublié le terrible coup de vent de |
|||
nord-est qui se déchaîna au milieu de l’équinoxe de cette année, et |
|||
pendant lequel le baromètre tomba à sept cent dix millimètres. Ce fut |
|||
un ouragan, sans intermittence, qui dura du 18 au 26 mars. Les ravages |
|||
qu’il produisit furent immenses en Amérique, en Europe, en Asie, sur |
|||
une zone large de dix-huit cents milles, qui se dessinait obliquement |
|||
à l’équateur, depuis le trente-cinquième parallèle nord jusqu’au |
|||
quarantième parallèle sud ! (L’île mystérieuse / Jules Verne) |
|||
</lang> |
|||
3) A translation of the javascript entry. The {jswrap n text} function contains lines until n characters |
|||
<lang javascript> |
|||
LAMBDATALK.DICT['jswrap'] = function() { |
|||
var wrap = function(text, limit) { |
|||
if (text.length > limit) { |
|||
var edge = text.slice(0, limit).lastIndexOf(' '); |
|||
if (edge > 0) { |
|||
var line = text.slice(0, edge); |
|||
var remainder = text.slice(edge + 1); |
|||
return line + '\n' + wrap(remainder, limit); |
|||
} |
|||
} |
|||
return text; |
|||
}; |
|||
var args = arguments[0].trim().split(" "); |
|||
var limit = parseInt(args.shift()); |
|||
var text = args.join(" "); |
|||
return wrap(text,limit); |
|||
}; |
|||
{jswrap 60 {text}} -> |
|||
Personne n’a sans doute oublié le terrible coup de vent de |
|||
nord-est qui se déchaîna au milieu de l’équinoxe de cette |
|||
année, et pendant lequel le baromètre tomba à sept cent dix |
|||
millimètres. Ce fut un ouragan, sans intermittence, qui |
|||
dura du 18 au 26 mars. Les ravages qu’il produisit furent |
|||
immenses en Amérique, en Europe, en Asie, sur une zone |
|||
large de dix-huit cents milles, qui se dessinait |
|||
obliquement à l’équateur, depuis le trente-cinquième |
|||
parallèle nord jusqu’au quarantième parallèle sud ! (L’île |
|||
mystérieuse / Jules Verne) |
|||
</lang> |
|||
=={{header|Lasso}}== |
=={{header|Lasso}}== |