Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 长生不老药你如何给一张清单排序?_Sorting_Elixir_List Comprehension - Fatal编程技术网

Sorting 长生不老药你如何给一张清单排序?

Sorting 长生不老药你如何给一张清单排序?,sorting,elixir,list-comprehension,Sorting,Elixir,List Comprehension,我一直在努力排序这个列表理解现在有一段时间了,我不明白两个具体的事情 for x <- span(2, n), y <- span(2, n), x <= y, x * y <= n, into: [], do: x * y 所以我的第一个问题是,如何使用管道对理解进行排序 编辑::由于存在重复项且我没有注意到它们而删除=> 如果我尝试: comps = for x <- span(2, n), y <- span(2, n), x <= y, x *

我一直在努力排序这个列表理解现在有一段时间了,我不明白两个具体的事情

for x <- span(2, n), y <- span(2, n), x <= y, x * y <= n, into: [], do: x * y
所以我的第一个问题是,如何使用管道对理解进行排序

编辑::由于存在重复项且我没有注意到它们而删除=>

如果我尝试:

comps = for x <- span(2, n), y <- span(2, n), x <= y, x * y <= n, into: [], do: x * y
Enum.sort(comps)

comps=for x进一步阅读后,解决方案是在配管前将理解包含在括号中

(for x <- span(2, n), y <- span(2, n), x <= y, x * y <= n, into: [], do: x * y)
  |> Enum.sort 

(对于x,什么是
span
?您可以为(x Enum.sort
但不可能在第一个代码段中没有重复的代码,在最后一个代码段中也有重复的代码。你能发布一个吗?@Dogbert sorry span只是范围的一个实现。我正在阅读《编程长生不老药》一书,作者让我们创建我们自己的范围实现(实际上只是创建了一个覆盖范围的列表),但如果我将调用改为span到ranges,效果是一样的。
对于x@Dogbert哦,我想我以前都没有注意到。谢谢你的顿悟,但是你知道如何对理解进行排序吗?
comps = for x <- span(2, n), y <- span(2, n), x <= y, x * y <= n, into: [], do: x * y
Enum.sort(comps)
(for x <- span(2, n), y <- span(2, n), x <= y, x * y <= n, into: [], do: x * y)
  |> Enum.sort