lambdaway
::
scramble
6
|
list
|
login
|
load
|
|
_img data/habitat_familial.jpg _h1 scramble _p Dans une phrase donnée on conserve la première et la dernière lettre de chaque mot et on inverse les autres. Si le mot est réduit à trois lettres on inverse les lettres extrêmes, à deux lettres on les inverse et à une seule on la garde. Par exemple : {pre '{S.scramble hello brave new world} -> {S.scramble hello brave new world} '{S.scramble emmanuel macron & marine le pen} -> {S.scramble emmanuel macron & marine le pen} } _p Appliquer deux fois {b S.scramble} retourne la phrase initiale. {prewrap '{S.scramble {S.scramble Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire. }} -> {S.scramble {S.scramble Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.}} } _h2 raconte moi ... _p Le code ci-dessous, où les retours à la ligne sont marqués par un antislash {b \} {pre '{center {b {S.scramble \ Raconte moi la mer \ Jean Ferrat } } {S.scramble \ Raconte-moi la mer \ Dis-moi le goût des algues \ Et le bleu et le vert \ Qui dansent sur les vagues \ . ... \ Qui dansent sur les vagues } } } _p produit ce résultat {center {b {S.scramble \ Raconte moi la mer \ Jean Ferrat }} {S.scramble \ . \ Raconte-moi la mer \ Dis-moi le goût des algues \ Et le bleu et le vert \ Qui dansent sur les vagues \ . \ La mer c'est l'impossible \ C'est le rivage heureux \ C'est le matin paisible \ Quand on ouvre les yeux \ C'est la porte du large \ Ouverte à deux battants \ C'est la tête en voyage \ Vers d'autres continents \ . \ C'est voler comme Icare \ Au devant du soleil \ En fermant sa mémoire \ A ce monde cruel \ La mer c'est le désir \ De ce pays d'amour \ Qu'il faudra découvrir \ Avant la fin du jour \ . \ Raconte-moi la mer \ Dis-moi ses aubes pâles \ Et le bleu et le vert \ Où tombent des étoiles \ . \ La mer c'est l'innocence \ Du paradis perdu \ Le jardin de l'enfance \ Où rien ne chante plus \ C'est l'écume et le sable \ Toujours recommencés \ Et la vie est semblable \ Au rythme des marées \ . \ C'est l'infinie détresse \ Des choses qui s'en vont \ C'est tout ce qui nous laisse \ A la morte saison \ La mer c'est le regret \ De ce pays d'amour \ Que l'on cherche toujours \ Et qu'on n'atteint jamais \ . \ Raconte-moi la mer \ Dis-moi le goût des algues \ Et le bleu et le vert \ Qui dansent sur les vagues }} _h2 ... en chantant SVP {audio {@ controls style="width:100%; height:20px;"} {source {@ src="data/sons/Jean_Ferrat_raconte_moi_la_mer.mp3" }} {p Your browser does not support HTML5 audio.} } _h2 code _p Lambdatalk dispose de primitives permettant de manipuler facilement les caractères d'un mot et les mots d'une phrase : {prewrap {W.lib} {S.lib} } _p Dans cette page on a simplement ajouté les deux fonctions suivantes, {b W.scramble & S.scramble} {pre '{def W.scramble {lambda {:w} {let { {:w :w} {:l {W.length :w}} } {if {= :l 1} then :w else {if {= :l 2} then {W.last :w}{W.first :w} else {if {= :l 3} then {W.get 2 :w}{W.get 1 :w}{W.get 0 :w} else {W.first :w}{W.reverse {W.slice 1 {- :l 1} :w}}{W.last :w}}}}}}} -> {def W.scramble {lambda {:w} {let { {:w :w} {:l {W.length :w}} } {if {= :l 1} then :w else {if {= :l 2} then {W.last :w}{W.first :w} else {if {= :l 3} then {W.get 2 :w}{W.get 1 :w}{W.get 0 :w} else {W.first :w}{W.reverse {W.slice 1 {- :l 1} :w}}{W.last :w}}}}}}} '{def S.scramble {lambda {:s} {S.replace \\ by {br} in {S.map W.scramble {S.replace - by space in :s}}}}} -> {def S.scramble {lambda {:s} {S.replace \\ by {br} in {S.map W.scramble {S.replace - by space in :s}}}}} } _p {i alain marty | 2022/04/23}
lambdaway v.20211111