История изменений
Исправление AndreyKl, (текущая версия) :
Смотря какие. d[0.5] = 2 в Python работает.
Как по мне так аргумент так себе.
То есть, с точки зрения использования, лучше какая-то система контрактов, которые проверяются по возможности статически (если компилятор может доказать).
Кмк, зависимые типы и есть замечательный (и достаточно простой) способ указывать эти контракты. Причём этот способ довольно гибко подстраивается под квалификацию программиста и текущую итерацию проекта.
Программисту, как правило, совсем не требуется явно прописывать условия зависимых типов. Ему надо, чтобы контракт проверялся и чтобы он проверялся минимальное количество раз (в идеале при компиляции).
В зависимых типах как раз проверяется при компиляции всё что может (в идеале всё).
И это уже работает даже в компиляторах C++.
Видимо, именно поэтому если программа на с++, то она даже после 10 лет фиксов хоть где то да сигфолтится.
Хочу только добавить, что мне кажется что хотя в шаблонах и можно написать всё что угодно, нужно учитывать что и на брейнфаке можно написать всё что угодно.
Исправление AndreyKl, :
Смотря какие. d[0.5] = 2 в Python работает.
Как по мне так аргумент так себе.
То есть, с точки зрения использования, лучше какая-то система контрактов, которые проверяются по возможности статически (если компилятор может доказать).
Кмк, зависимые типы и есть замечательный (и простой) способ указывать эти контракты. Причём этот способ довольно гибко подстраивается под квалификацию программиста и текущую итерацию проекта.
Программисту, как правило, совсем не требуется явно прописывать условия зависимых типов. Ему надо, чтобы контракт проверялся и чтобы он проверялся минимальное количество раз (в идеале при компиляции).
В зависимых типах как раз проверяется при компиляции всё что может (в идеале всё).
И это уже работает даже в компиляторах C++.
Видимо, именно поэтому если программа на с++, то она даже после 10 лет фиксов хоть где то да сигфолтится.
Хочу только добавить, что мне кажется что хотя в шаблонах и можно написать всё что угодно, нужно учитывать что и на брейнфаке можно написать всё что угодно.
Исправление AndreyKl, :
Смотря какие. d[0.5] = 2 в Python работает.
Как по мне так аргумент так себе.
То есть, с точки зрения использования, лучше какая-то система контрактов, которые проверяются по возможности статически (если компилятор может доказать).
Кмк, зависимые типы и есть замечательный (и простой) способ указывать эти контракты. Причём этот способ довольно гибко подстраивается под квалификацию программиста и текущую итерацию проекта.
Программисту, как правило, совсем не требуется явно прописывать условия зависимых типов. Ему надо, чтобы контракт проверялся и чтобы он проверялся минимальное количество раз (в идеале при компиляции).
В зависимых типах как раз проверяется при компиляции всё что может (в идеале всё).
И это уже работает даже в компиляторах C++.
Видимо, именно поэтому если программа на с++, то она даже после 10 лет фиксов хоть где то да сигфолтится.
Хочу только добавить что хотя в шаблонах и можно написать всё что угодно, нужно учитывать что и на брейнфаке можно написать всё что угодно.
Исходная версия AndreyKl, :
Смотря какие. d[0.5] = 2 в Python работает.
Как по мне так аргумент так себе.
То есть, с точки зрения использования, лучше какая-то система контрактов, которые проверяются по возможности статически (если компилятор может доказать).
Кмк, зависимые типы и есть замечательный (и простой) способ указывать эти контракты. Причём этот способ довольно гибко подстраивается под квалификацию программиста и текущую итерацию проекта.
Программисту, как правило, совсем не требуется явно прописывать условия зависимых типов. Ему надо, чтобы контракт проверялся и чтобы он проверялся минимальное количество раз (в идеале при компиляции).
В зависимых типах как раз проверяется при компиляции всё что может (в идеале всё).
И это уже работает даже в компиляторах C++.
Видимо, именно поэтому с++ если программа на с++, то она даже после 10 лет фиксов хоть где то да сигфолтится.
Хочу только добавить что хотя в шаблонах и можно написать всё что угодно, нужно учитывать что и на брейнфаке можно написать всё что угодно.