Size: a a a

Типы в языках программирования, моделирования, представления знаний и жизни

2021 November 14

s

suhr in Типы в языках программирования, моделирования, представления знаний и жизни
arr i = arr (i `mod` (len arr))
источник

K

Kir in Типы в языках программирования, моделирования, представления знаний и жизни
Да это ж UB

Карлссон.жпег
источник

DK

Dmitrii Kuznetsov in Типы в языках программирования, моделирования, представления знаний и жизни
как-то туманно «(волшебный) способ…»))
именно программ, а не языков?
источник

ЗП

Зигохистоморфный Пре... in Типы в языках программирования, моделирования, представления знаний и жизни
вот изврат на пурсе

data Nat
foreign import data Zero :: Nat
foreign import data Succ :: Nat -> Nat

newtype Vec (n :: Nat) (a :: Type) = Vec (forall (u :: Nat -> Type -> Type). u Zero a -> (forall (k :: Nat). a -> u k a -> u (Succ k) a) -> u n a)
источник

K

Kir in Типы в языках программирования, моделирования, представления знаний и жизни
NOICE
источник

K

Kir in Типы в языках программирования, моделирования, представления знаний и жизни
А теперь через Fin
источник

DK

Dmitrii Kuznetsov in Типы в языках программирования, моделирования, представления знаний и жизни
вот этот момент и интересен. можно ли отделить типы от (базового/несущего) языка?
источник

goldstein опять in Типы в языках программирования, моделирования, представления знаний и жизни
программ, конечно.
самое простое свойство, которое может нас интересовать это «байты памяти всегда интерпретируются тем же способом, которым интерпретировались ранее»
источник

s

suhr in Типы в языках программирования, моделирования, представления знаний и жизни
Смотри, как поворот массива получается:

   ↕️5
⟨ 0 1 2 3 4 ⟩
  2+↕️5
⟨ 2 3 4 5 6 ⟩
  5|2+↕️5
⟨ 2 3 4 0 1 ⟩
  (5|2+↕️5)⊏"abcde"
"cdeab"
источник

ЗП

Зигохистоморфный Пре... in Типы в языках программирования, моделирования, представления знаний и жизни
у пурсы нет гадтов, прийдется через лейбница записывать
источник

goldstein опять in Типы в языках программирования, моделирования, представления знаний и жизни
а дальше всё зависит от воображения
источник

ЗП

Зигохистоморфный Пре... in Типы в языках программирования, моделирования, представления знаний и жизни
как на хаскель через фин?
источник

goldstein опять in Типы в языках программирования, моделирования, представления знаний и жизни
идрис, например, умеет отличать программы, в которых нет out-of-bounds доступа к вектору
источник

K

Kir in Типы в языках программирования, моделирования, представления знаний и жизни
Я всё пытаюсь уехать шины поменять, пни меня через 2 часа
источник

goldstein опять in Типы в языках программирования, моделирования, представления знаний и жизни
Rust умеет* отличать программы, в которых нет несинхронизированного доступа к памяти
источник

K

Kir in Типы в языках программирования, моделирования, представления знаний и жизни
* отличать

cannot be dereferenced
источник

DK

Dmitrii Kuznetsov in Типы в языках программирования, моделирования, представления знаний и жизни
понял
источник

s

suhr in Типы в языках программирования, моделирования, представления знаний и жизни
Вместо того, чтобы тащить пруф отсутствия out-of-bounds, можно определить функцию, которая просто всегда работает.
источник

s

suhr in Типы в языках программирования, моделирования, представления знаний и жизни
И затем доказывать отсутствие out-of-bounds отдельно, если очень надо.
источник

K

Kir in Типы в языках программирования, моделирования, представления знаний и жизни
Ага, только она UB 95% случаев и Воронеж бомбит
источник