Haskell - Functional Programming Help
haskell
Solution
The result of quicksorting the empty list is the empty list.
The result of quicksorting a non-empty list, where we call the first element of the list `x` and the remaining elements `xs` is: The result of quicksorting all the elements of `xs` that are smaller than x (*), followed by x, followed by the result of quicksorting all the elements of xs that are greater than x.
(*) To elaborate a bit: `[y | y <- xs, y<x ]` can be read as "the list of all y where y is in xs and `y<x`".
Problem
Trying to get a feel for haskell. Am a seasoned programmer with PHP, JAVA, VB and many other languages, but am finding haskell slightly more difficult to follow. Can anyone give me an english translation for the following haskell function, to get me started... ``` quicksort [] = [] quicksort (x:xs) = quicksort [y | y <- xs, y<x ] ++ [x] ++ quicksort [y | y <- xs, y>=x] ``` An example of english translation is in the comments below: ``` // --- FOR_LOOP -> // --- $abc goes from 1 to 10 -> // --- If $abc is even - print $abc is even -> // --- else if $abc is odd - print $abc is odd -> // --- END_FOR_LOOP for( $abc = 1 ; $abc <= 10 ; $abc++ ){ if( $abc % 2 == 0 ){ echo $abc . " is even"; } else{ echo $abc . " is odd"; } } ``` The first line is straightforward enough, reading: "Function quicksort on an empty list yields an empty list as the result"... If you can translate the remainder of the haskell into english that would be very helpfull.