试图感受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
".