erlang - quicksort.来自learnyousomeerlang的标准快速排序程序

 感性的拉蕾啊拉蕾丶Renata 发布于 2022-12-27 15:02

有什么不同?为什么我只获得列表中的第一个元素?

    -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功能.

谢谢.

1 个回答
  • 变量的第一个字母必须是大写的Rest或者是Smaller.x并且y在你的函数是atom秒.

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

    2022-12-27 15:03 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有