Есть ли для Джулии функция Minimumby (или какой-нибудь идиоматический заменитель c)? То есть мне нужно что-то, что работает вроде:
julia> minimumby(length, ["Julion", "Julia", "Jule"]) "Jule"
Я придумал следующее, которое, кажется, делает то, что я хочу. Не уверен, насколько это оптимально.
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
Лучшее, что я могу сделать, это:
julia> reduce((a, b) -> length(a) < length(b) ? a : b, ["Julion", "Julia", "Jule"]) "Jule"
Нет, к сожалению, нет. Об этом просили годами, но никто не успел реализовать это.