Size: a a a

2020 March 03

λO

λeonid Onokhov in rust_offtopic
Шёл 2020й год, в оффтопике продолжали путать типы и тэги
источник

EG

Emmanuel Goldstein in rust_offtopic
λeonid Onokhov
typeof(a/0)?
typeof(a/b) — Int, но функция не определена при b == 0.
источник

λ

λоλторт in rust_offtopic
Alex Zhukovsky
ну ок, пруф что значение эквивалентно литералу это ведь тип?
Пруф это значение, а тип это тип этого пруфа
источник

AZ

Alex Zhukovsky in rust_offtopic
testFunc : n -> (n = 1) -> Integer
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
это значит что ты не запуская программу в каждой точке можешь назвать множество возможных значений перменных
a = 1
def foo(b):
 pass

Тогда здесь у переменной a тип int, а у b: any
источник

p

polunin.ai in rust_offtopic
Так?
источник

λ

λоλторт in rust_offtopic
Alex Zhukovsky
testFunc : n -> (n = 1) -> Integer
Тут n это не тип
источник

λO

λeonid Onokhov in rust_offtopic
polunin.ai
a = 1
def foo(b):
 pass

Тогда здесь у переменной a тип int, а у b: any
Оба PyObject
источник

p

polunin.ai in rust_offtopic
λeonid Onokhov
Оба PyObject
Почему?
источник

G

Gymmasssorla in rust_offtopic
Vabka
в принипе, можно сделать такую систему типов, в которой будет
int / int = int
int / 0 = never
тогда тип
1 / 0 во время компиляции будет int | never
div : int -> int -> Div int, то есть функция нетотальная
источник

p

polunin.ai in rust_offtopic
Я вижу 1, он имеет тип int
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
a = 1
def foo(b):
 pass

Тогда здесь у переменной a тип int, а у b: any
нет, а тоже any потому что этот код работает:
a = 1
print(a)
a = "Hello"
print(a)
источник

λO

λeonid Onokhov in rust_offtopic
polunin.ai
Почему?
Потому что других типов в питоне нет
источник

EG

Emmanuel Goldstein in rust_offtopic
λeonid Onokhov
Оба PyObject
Протестую, PyObject — это CPython implementation detail. Говори в терминах питона.
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
нет, а тоже any потому что этот код работает:
a = 1
print(a)
a = "Hello"
print(a)
Так ты две разные переменные создал)
источник

EG

Emmanuel Goldstein in rust_offtopic
В PyPy никакого PyObject нет.
источник

G

Gymmasssorla in rust_offtopic
Vabka
в принипе, можно сделать такую систему типов, в которой будет
int / int = int
int / 0 = never
тогда тип
1 / 0 во время компиляции будет int | never
Или можно сделать тотальную функцию с refinement типами:

div : int -> a:int{a != 0} -> Tot int
источник

EG

Emmanuel Goldstein in rust_offtopic
Alex Zhukovsky
нет, а тоже any потому что этот код работает:
a = 1
print(a)
a = "Hello"
print(a)
let a = 1;
println!("{}", a);
let a = "Hello";
println!("{}", a);
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
нет, а тоже any потому что этот код работает:
a = 1
print(a)
a = "Hello"
print(a)
Аналог на расте:
let a = 1;
print(a);
let a = "Hello";
print(a);
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
Так ты две разные переменные создал)
с чего бы это?

a = 1
if 1 == 1:
 a = "Hello"
print (a)
источник