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