Size: a a a

2020 June 10

DS

Doge Shibu in rust_offtopic
Егор Савельев
наука вышла как отдельное направление философии - материализма.
Так прикол в том, что теперь в философии остались только балаболы, вся рабочая часть философии оказалась в других областях целиком
источник

ЕС

Егор Савельев... in rust_offtopic
Alex Zhukovsky
если myFunc это генерик вида a -> a, то откуда он должен понять какой тип a ?
Не понял. У него тип myFunc x == 10
источник

ЕС

Егор Савельев... in rust_offtopic
Doge Shibu
Так прикол в том, что теперь в философии остались только балаболы, вся рабочая часть философии оказалась в других областях целиком
Какая разница что сейчас?)
источник

AZ

Alex Zhukovsky in rust_offtopic
Егор Савельев
Не понял. У него тип myFunc x == 10
компилятор должен вызывать myFunc x чтобы тайпчекнуть это. Какой тип a в myFunc он должен подставить?
источник

DS

Doge Shibu in rust_offtopic
Егор Савельев
Какая разница что сейчас?)
Потому что мы говорим про сейчас, а не про пару сотен/тысяч лет назад.
источник

ЕС

Егор Савельев... in rust_offtopic
Alex Zhukovsky
компилятор должен вызывать myFunc x чтобы тайпчекнуть это. Какой тип a в myFunc он должен подставить?
Любой a
источник

ЕС

Егор Савельев... in rust_offtopic
Дженерик пробрасывается наверх
источник

AZ

Alex Zhukovsky in rust_offtopic
компилятор не может вызывать в любым a, ему нужен конкретный
источник

AZ

Alex Zhukovsky in rust_offtopic
Егор Савельев
Дженерик пробрасывается наверх
куда наверх? Функция может быть публичной экспортируемой, у неё нет вызовов, Но тайпчекнуть надо
источник

ЕС

Егор Савельев... in rust_offtopic
Alex Zhukovsky
компилятор не может вызывать в любым a, ему нужен конкретный
Это называется "обобщенные параметры", я думаю в этом чате должны об этом знать.
источник

ЕС

Егор Савельев... in rust_offtopic
Тут тип возвращаемого значения - дженерик с констрйнтом Eq 10
источник

AZ

Alex Zhukovsky in rust_offtopic
Егор Савельев
Тут тип возвращаемого значения - дженерик с констрйнтом Eq 10
а какой констрейнт должен быть у
x: myOtherFunc (myFunc x) 10
источник

ЕС

Егор Савельев... in rust_offtopic
Не могу так сходу понять, какой конкретно тут должен быть констрейнт🤔
источник

ЕС

Егор Савельев... in rust_offtopic
Alex Zhukovsky
а какой констрейнт должен быть у
x: myOtherFunc (myFunc x) 10
Здесь обобщенный тип myOtherFunc (myFunc x) 10
источник

AZ

Alex Zhukovsky in rust_offtopic
Егор Савельев
Здесь обобщенный тип myOtherFunc (myFunc x) 10
как тайпчекеру понять, совпадает тело функции с сигнатурой или нет?
источник

ЕС

Егор Савельев... in rust_offtopic
Компилятор на месте вызова функции будет проверять соблюдение этого условия
источник

AZ

Alex Zhukovsky in rust_offtopic
Егор Савельев
Компилятор на месте вызова функции будет проверять соблюдение этого условия
нет вызова функции, она экспортируемая
источник

ЕС

Егор Савельев... in rust_offtopic
Alex Zhukovsky
нет вызова функции, она экспортируемая
Значит никаких проблем нет, если не не вызывают)
источник

ЕС

Егор Савельев... in rust_offtopic
Alex Zhukovsky
как тайпчекеру понять, совпадает тело функции с сигнатурой или нет?
Как как? Тайпчекнуть)
источник

AZ

Alex Zhukovsky in rust_offtopic
Егор Савельев
Значит никаких проблем нет, если не не вызывают)
ну тело функции мы не тайпчекаем значит ? ведь

(x : Int  ** myOtherFunc (myFunc x) 10)
и например
(x : Nat  ** myOtherFunc (myFunc x) 10)

требуют разного тела
источник