Phrase reversals: Difference between revisions

→‎{{header|Haskell}}: Rearranged a little to foreground the core. Added type signatures.
(→‎{{header|Haskell}}: Rearranged a little to foreground the core. Added type signatures.)
Line 936:
 
=={{header|Haskell}}==
<lang haskell>phrasereverseString, =reverseEachWord, "rosettareverseWordOrder code:: phraseString reversal"-> String
reverseString = reverse
 
reverseEachWord = wordLevel (fmap reverse)
main = do
putStrLn $ reverse phrase
putStrLn $ unwords . map reverse . words $ phrase
putStrLn $ unwords . reverse . words $ phrase</lang>
 
reverseWordOrder = wordLevel reverse
{{out}}
 
<pre>
wordLevel :: ([String] -> [String]) -> String -> String
lasrever esarhp edoc attesor
wordLevel f = unwords . f . words
 
main :: IO ()
main = do
(putStrLn $. reverseunlines) phrase$
[reverseString, reverseEachWord, reverseWordOrder] <*>
["rosetta code phrase reversal"]</lang>
{{outOut}}
<pre>lasrever esarhp edoc attesor
attesor edoc esarhp lasrever
reversal phrase code rosetta</pre>
</pre>
 
=={{header|J}}==
9,659

edits