我想按实数部分然后按虚数部分对复数列表(或用julia讲一维数组)进行排序。我尝试对lt使用匿名函数,但是它不起作用。
julia> b=[3 + 1im,1 + 2im,1 + 1im,5 + 6im]
4-element Array{Complex{Int64},1}:
3 + 1im
1 + 2im
1 + 1im
5 + 6im
julia> sort(b,lt = x,y -> if(real(x)==real(y)) imag(x)<imag(y) else real(x)<real(y) end)
ERROR: UndefVarError: x not defined
Stacktrace:
[1] top-level scope at none:0
我想要以下结果
1 + 1im
1 + 2im
3 + 1im
5 + 6im
答案 0 :(得分:6)
太近了!
julia> sort(b, lt = (x,y) -> real(x)==real(y) ? imag(x)<imag(y) : real(x)<real(y))
4-element Array{Complex{Int64},1}:
1+1im
1+2im
3+1im
5+6im
答案 1 :(得分:0)
按字典顺序对单词进行排序(第一个元素;然后第二个元素,依此类推)。 您可以这样做:
if (global.document)
document.createRange = () => ({
setStart: () => {},
setEnd: () => {},
commonAncestorContainer: {
nodeName: "BODY",
ownerDocument: document,
},
})
编辑:上面的注释使用b = [3 + 1im, 1 + 2im, 1 + 1im, 5 + 6im]
sort(b, lt = (x, y) -> (real(x), imag(x)) < (real(y), imag(y)))
更加简洁。