Звучит так, как будто вы хотите отобразить или транслировать :
по элементам в двух аргументах.Просто сделайте это явно:
julia> map(:, 2:5, 5:8)
4-element Array{UnitRange{Int64},1}:
2:5
3:6
4:7
5:8
Теперь, в идеале, вы бы также могли записать это как (2:5) .: (5:8)
- вы бы поставили точку :
для трансляции этого оператора - но так как :
используется для очень многих вещей, и поскольку это не очень распространенный вариант использования, мы не включили расстановку точек :
.Однако вы можете использовать неинфиксную форму и указать точку:
julia> (:).(2:5, 5:8)
4-element Array{UnitRange{Int64},1}:
2:5
3:6
4:7
5:8
Что касается получаемого сообщения об ошибке, то это потому, что первое, что :
пытается сделать, это определить длину,предполагая, что его два аргумента являются скалярами.Для этого он вычитает первый аргумент из второго:
julia> (5:8) - (2:5)
ERROR: ArgumentError: step cannot be zero
Не удается, потому что он пытается создать диапазон шагов, который эффективно 3:0:3
и имеет длину 4.