Сообщение Re[2]: [ksi] Синтаксис диапазонов -- тип range от 01.02.2022 17:35
Изменено 01.02.2022 17:41 Sm0ke
Re[2]: [ksi] Синтаксис диапазонов -- тип range
Здравствуйте, wildwind, Вы писали:
W>А зачем тут шаг?
Чтобы сразу указать его и итерировать в цикле. Или можно взять слайс от массива, тоже с шагом.
Я думал над тем, чтобы шаг не хранить, если он не указан, но решил, что лучше всегда хранить, чтобы можно было потом в программе его проверять без лишних костылей типа проверки наличия поля.
S>>Если нижняя граница не указана, то она равна 0.
W>А почему именно 0, а не -∞, например?
Можно явно указать и минус бесконечность, но итерировать тогда нельзя будет. Какой тогда прок использовать минус бесконечность по умолчанию?
Ещё я думаю, что можно будет явно указать значение null (не задано).
S>>С удовольствием рассмотрю ваши варианты.
W>А если так: Range(8-, 2+)? "+" означает закрытый, "-" открытый.
W>Еcли хочется покороче, можно типа _R(8-, 2+)
_R — это врядли.
Тогда как-то так?
* Ключевые слова в ksi с бактика скорее всего будут.
Теперь сравним
И с шагом
И наконец в слайсах
В общем пока думаю)
W>А зачем тут шаг?
Чтобы сразу указать его и итерировать в цикле. Или можно взять слайс от массива, тоже с шагом.
Я думал над тем, чтобы шаг не хранить, если он не указан, но решил, что лучше всегда хранить, чтобы можно было потом в программе его проверять без лишних костылей типа проверки наличия поля.
S>>Если нижняя граница не указана, то она равна 0.
W>А почему именно 0, а не -∞, например?
Можно явно указать и минус бесконечность, но итерировать тогда нельзя будет. Какой тогда прок использовать минус бесконечность по умолчанию?
Ещё я думаю, что можно будет явно указать значение null (не задано).
S>>С удовольствием рассмотрю ваши варианты.
W>А если так: Range(8-, 2+)? "+" означает закрытый, "-" открытый.
W>Еcли хочется покороче, можно типа _R(8-, 2+)
_R — это врядли.
Тогда как-то так?
`range(4+, 8-)
`range(4+, 8+)
`range(4-, 8-)
`range(4-, 8+)* Ключевые слова в ksi с бактика скорее всего будут.
Теперь сравним
ваш вариант rust+ питон
`range(4+, 8-) 4 .. 8 [4:8]
`range(4+, 8+) 4 ..= 8
`range(4-, 8-) 4 *.. 8
`range(4-, 8+) 4 *..= 8И с шагом
ваш вариант+ rust+ питон
`range(4+, 8-, 2) 4 .. 8 : 2 [4:8:2]
`range(4+, 8+, 2) 4 ..= 8 : 2
`range(4-, 8-, 2) 4 *.. 8 : 2
`range(4-, 8+, 2) 4 *..= 8 : 2И наконец в слайсах
ваш вариант rust+ питон
array[`range(4+, 8-, 2)] array[4 .. 8 : 2] array[4:8:2]
array[`range(4+, 8+, 2)] array[4 ..= 8 : 2]
array[`range(4-, 8-, 2)] array[4 *.. 8 : 2]
array[`range(4-, 8+, 2)] array[4 *..= 8 : 2]В общем пока думаю)
Re[2]: [ksi] Синтаксис диапазонов -- тип range
Здравствуйте, wildwind, Вы писали:
W>А зачем тут шаг?
Чтобы сразу указать его и итерировать в цикле. Или можно взять слайс от массива, тоже с шагом.
Я думал над тем, чтобы шаг не хранить, если он не указан, но решил, что лучше всегда хранить, чтобы можно было потом в программе его проверять без лишних костылей типа проверки наличия поля.
S>>Если нижняя граница не указана, то она равна 0.
W>А почему именно 0, а не -∞, например?
Можно явно указать и минус бесконечность, но итерировать тогда нельзя будет. Какой тогда прок использовать минус бесконечность по умолчанию?
Ещё я думаю, что можно будет явно указать значение null (не задано).
S>>С удовольствием рассмотрю ваши варианты.
W>А если так: Range(8-, 2+)? "+" означает закрытый, "-" открытый.
W>Еcли хочется покороче, можно типа _R(8-, 2+)
_R — это врядли.
Тогда как-то так?
* Ключевые слова в ksi с бактика скорее всего будут. Но возможно что с подчёркивания.
Теперь сравним
И с шагом
И наконец в слайсах
В общем пока думаю)
W>А зачем тут шаг?
Чтобы сразу указать его и итерировать в цикле. Или можно взять слайс от массива, тоже с шагом.
Я думал над тем, чтобы шаг не хранить, если он не указан, но решил, что лучше всегда хранить, чтобы можно было потом в программе его проверять без лишних костылей типа проверки наличия поля.
S>>Если нижняя граница не указана, то она равна 0.
W>А почему именно 0, а не -∞, например?
Можно явно указать и минус бесконечность, но итерировать тогда нельзя будет. Какой тогда прок использовать минус бесконечность по умолчанию?
Ещё я думаю, что можно будет явно указать значение null (не задано).
S>>С удовольствием рассмотрю ваши варианты.
W>А если так: Range(8-, 2+)? "+" означает закрытый, "-" открытый.
W>Еcли хочется покороче, можно типа _R(8-, 2+)
_R — это врядли.
Тогда как-то так?
`range(4+, 8-)
`range(4+, 8+)
`range(4-, 8-)
`range(4-, 8+)* Ключевые слова в ksi с бактика скорее всего будут. Но возможно что с подчёркивания.
Теперь сравним
ваш вариант rust+ питон
_range(4+, 8-) 4 .. 8 [4:8]
_range(4+, 8+) 4 ..= 8
_range(4-, 8-) 4 *.. 8
_range(4-, 8+) 4 *..= 8И с шагом
ваш вариант+ rust+ питон
_range(4+, 8-, 2) 4 .. 8 : 2 [4:8:2]
_range(4+, 8+, 2) 4 ..= 8 : 2
_range(4-, 8-, 2) 4 *.. 8 : 2
_range(4-, 8+, 2) 4 *..= 8 : 2И наконец в слайсах
ваш вариант rust+ питон
array[`range(4+, 8-, 2)] array[4 .. 8 : 2] array[4:8:2]
array[`range(4+, 8+, 2)] array[4 ..= 8 : 2]
array[`range(4-, 8-, 2)] array[4 *.. 8 : 2]
array[`range(4-, 8+, 2)] array[4 *..= 8 : 2]В общем пока думаю)