問題:
我希望能夠使用依賴于外部定義變數的自定義函式進行排序,例如:
k = 2
sort([1,2,3], lt=(x,y) -> x k > y)
這很有效,因為k它是在全域范圍內定義的。
這就是我的問題所在,因為我想做類似于:
function
k = 2
comp = (x,y) -> x k > y
sort([1,3,3], lt=comp)
end
哪個有效,但感覺就像一個 hack,因為我的比較函式要大得多,而且必須在函式體中定義它感覺真的很糟糕。
例如,這不起作用:
comp = (x,y) -> x k > y # or function comp(x,y) ... end
function
k = 2
sort([1,3,3], lt=comp)
end
所以我只是想知道是否有任何方法可以捕獲變數,k例如您可以在C .
uj5u.com熱心網友回復:
這是你想要的嗎?
julia> comp(k) = (x,y) -> x k > y
comp (generic function with 1 method)
julia> sort([1,3,2,3,2,2,2,3], lt=comp(2))
8-element Vector{Int64}:
3
2
2
2
3
2
3
1
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/463571.html
下一篇:C中的通用快速排序
