функция minimumby для Юлии? - PullRequest
2 голосов
/ 14 июля 2020

Есть ли для Джулии функция Minimumby (или какой-нибудь идиоматический заменитель c)? То есть мне нужно что-то, что работает вроде:

julia> minimumby(length, ["Julion", "Julia", "Jule"])
"Jule"

Ответы [ 3 ]

2 голосов
/ 16 июля 2020

Я придумал следующее, которое, кажется, делает то, что я хочу. Не уверен, насколько это оптимально.

function minimumby(keyf, a)
    keymap = item -> (keyf(item), item)
    keymin = (x, y) -> if y[1] < x[1] y else x end
    mapreduce(keymap, keymin, a)[2]
end
1 голос
/ 16 июля 2020

Лучшее, что я могу сделать, это:

julia> reduce((a, b) -> length(a) < length(b) ? a : b, ["Julion", "Julia", "Jule"])

"Jule"
1 голос
/ 16 июля 2020

Нет, к сожалению, нет. Об этом просили годами, но никто не успел реализовать это.

...