【问题标题】:erlang - quicksort. The standard quicksort program from learnyousomeerlangerlang - 快速排序。 learnyousomeerlang 的标准快速排序程序
【发布时间】:2014-10-10 09:57:21
【问题描述】:

有什么区别?为什么我只得到列表中的第一个元素?

    -module(hello).
-export(quicksort/1,                                                                                 
    lc_quicksort/1]).

quicksort([]) -> []; 
quicksort([Pivot|Rest]) ->
    quicksort([x || x <- Rest, x =< Pivot])
    ++[Pivot]
    ++ quicksort([y || y <- Rest, y > Pivot]).

lc_quicksort([]) -> []; 
lc_quicksort([Pivot|Rest]) ->
lc_quicksort([Smaller || Smaller <- Rest, Smaller =< Pivot])
++ [Pivot] ++
lc_quicksort([Larger || Larger <- Rest, Larger > Pivot]).



1> c("hello.erl").

{ok,hello}

2> hello:quicksort([3, 1, 4, 2, 5, 9]).

[3]

3>  hello:lc_quicksort([3, 1, 4, 2, 5, 9]).

[1,2,3,4,5,9]

我错过了什么?发布此内容以了解我在学习时错过的 erlang 功能。

谢谢。

【问题讨论】:

    标签: syntax erlang quicksort


    【解决方案1】:

    变量的第一个字母必须是大写,例如RestSmaller。函数中的xyatoms。

    quicksort([]) -> []; 
    quicksort([Pivot|Rest]) ->
        quicksort([X || X <- Rest, X =< Pivot])
        ++[Pivot]
        ++ quicksort([Y || Y <- Rest, Y > Pivot]).
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-23
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多