Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Five Ways to Reverse a String of Words (..., Oz)

by diotalevi (Canon)
on Jan 07, 2007 at 19:41 UTC ( #593427=note: print w/replies, xml ) Need Help??

in reply to Five Ways to Reverse a String of Words (C#, Perl 5, Perl 6, Ruby, Haskell)

For giggles I tried writing this in Oz. The ReverseWords function could have been written without all the intermediate variables but it would have suffered in readability so I didn't. It's also a complete program with loading the appropriate libraries, etc.

functor import Application System String at 'x-oz://system/String.ozf' define fun {IsntNil X} case X of nil then false else true end end fun {ReverseWords In Split} local Tokens FilteredTokens Reversed Str in Tokens = {String.split In Split} FilteredTokens = {List.filter Tokens IsntNil} Reversed = {List.reverse FilteredTokens} Str = {String.join Reversed Split} {String.toAtom Str} end end in {System.print {ReverseWords " one two three four " " "}} {Application.exit 0} end

⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

Replies are listed 'Best First'.
Re^2: Five Ways to Reverse a String of Words (..., Oz)
by Anonymous Monk on Mar 23, 2007 at 10:16 UTC
    no php yet? no respect! ;)

    $reversed = implode(' ', array_reverse(explode(' ', $str)));

    kept it on one line so the perl guys can understand it :)
      php is the bomb

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://593427]
[Corion]: Text::CSV_XS for all your CSV file parsing needs. Other than that, what problems do you have with perlre, and capturing everything after the comma? Also, index and substr would also work.
[choroba]: my ($value) = $string =~ /.*,(.*)/
[choroba]: The .* at the beginning matches the longest possible substring, so it eats any previous commas
[choroba]: But for CSV, use appropriate modules

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (8)
As of 2018-05-27 08:54 GMT
Find Nodes?
    Voting Booth?