Haskell - 函数式编程帮助

Don*_*Msc 9 haskell

试图感受haskell.我是一名经验丰富的程序员,拥有PHP,JAVA,VB和许多其他语言,但我发现haskell稍微难以理解.任何人都可以给我一个英语翻译为以下haskell功能,让我开始...

quicksort []     = []
quicksort (x:xs) = quicksort [y | y <- xs, y<x ]
                   ++ [x]
                   ++ quicksort [y | y <- xs, y>=x]
Run Code Online (Sandbox Code Playgroud)

英语翻译的一个例子在下面的评论中:

// --- 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";
  }
}
Run Code Online (Sandbox Code Playgroud)

第一行很简单,读作:"空列表上的函数快速排序会产生一个空列表作为结果"......如果你可以将haskell的其余部分翻译成英语,那将非常有用.

sep*_*p2k 13

快速排序空列表的结果是空列表.

快速排序非空列表的结果,我们称之为列表的第一个元素,x其余元素xs为:快速排序的所有元素的xs结果小于x(*),后跟x,后跟结果快速排序大于x的xs的所有元素.

(*)详细说明:[y | y <- xs, y<x ]可以读作"y在ys和y中的所有y的列表y<x".