Size: a a a

2020 August 05

AZ

Alex Zhukovsky in rust_offtopic
причем оно будет на самом деле работать, без believe_me
источник

AK

Alexander Krivitskiy in rust_offtopic
Alex Zhukovsky
в том, откуда требование ToString взялось и что мне надо использовать чтобы этот метод появился?
Из тела шаблона взялось. Считай, сдедюсилось. Если хочешь как в расте используй static_assert и std::is_base_of с кастомным сообщением об ошибке, что T должен имплементить такой-то интерфейс.
источник

AZ

Alex Zhukovsky in rust_offtopic
ну и наконец, параметричность это важно
источник

DF

Dollar Føølish in rust_offtopic
Что такое параметричность
источник

KR

Kai Ren in rust_offtopic
Alex Zhukovsky
то что они позволяют творить магию - это не плюсы шаблонов, а минусы раста и шарпа. Возьми генерики в системе с нормальными типами как идрис и такой разницы не будет
полунин же недавно вроде приводил пример с мапой фунок, в который идрис не смог, не?
источник

AZ

Alex Zhukovsky in rust_offtopic
Alexander Krivitskiy
Из тела шаблона взялось. Считай, сдедюсилось. Если хочешь как в расте используй static_assert и std::is_base_of с кастомным сообщением об ошибке, что T должен имплементить такой-то интерфейс.
ну вот я хочу чтобы компилятор мне везде сам это расставлял и появнял. То есть да, можно получить лучшее сообщение об ошибке. Почему бы не иметь лучшее чем худшее?
источник

AZ

Alex Zhukovsky in rust_offtopic
Kai Ren
полунин же недавно вроде приводил пример с мапой фунок, в который идрис не смог, не?
data HeterogenMap : Type -> (keytoVal : keyType -> Type) -> Type

FooType : String -> Type
FooType "a" = Int -> Int
FooType "b" = String
FooType _ = Void

foo : HeterogenMap k FooType

Ты
про это? даа, не смог
источник

AK

Alexander Krivitskiy in rust_offtopic
Alex Zhukovsky
ну вот я хочу чтобы компилятор мне везде сам это расставлял и появнял. То есть да, можно получить лучшее сообщение об ошибке. Почему бы не иметь лучшее чем худшее?
Мин 15 макрос написать, чтобы чекать баунды подобно расту.
источник

в

весёлый кремовый 🍰 т... in rust_offtopic
polunin.ai
Вообще удобство нужно считать по времени затраченному с использованием инструмента а не с тем что говорят люди об этом инструменте
время это не единственный ресурс, который тратят люди
источник

AZ

Alex Zhukovsky in rust_offtopic
Dollar Føølish
Что такое параметричность
когда можно судить о области возможных значений функции исходя из сигнатуры
источник

AZ

Alex Zhukovsky in rust_offtopic
например у функции total T -> T ровно одна реализация
источник

KR

Kai Ren in rust_offtopic
Alex Zhukovsky
data HeterogenMap : Type -> (keytoVal : keyType -> Type) -> Type

FooType : String -> Type
FooType "a" = Int -> Int
FooType "b" = String
FooType _ = Void

foo : HeterogenMap k FooType

Ты
про это? даа, не смог
он рабочий?
источник

DF

Dollar Føølish in rust_offtopic
весёлый кремовый 🍰 торт
время это не единственный ресурс, который тратят люди
++
источник

AZ

Alex Zhukovsky in rust_offtopic
Kai Ren
он рабочий?
источник

KR

Kai Ren in rust_offtopic
👍
источник

в

весёлый кремовый 🍰 т... in rust_offtopic
Dollar Føølish
Что такое параметричность
это когда forall x . x -> x у тебя населён единственным представителем
источник

в

весёлый кремовый 🍰 т... in rust_offtopic
грубо говоря
источник

DF

Dollar Føølish in rust_offtopic
Параметричность это здорово
источник

DF

Dollar Føølish in rust_offtopic
Буду теперь топить за параметричность
источник

AK

Alexander Krivitskiy in rust_offtopic
Alex Zhukovsky
ну вот я хочу чтобы компилятор мне везде сам это расставлял и появнял. То есть да, можно получить лучшее сообщение об ошибке. Почему бы не иметь лучшее чем худшее?
Так куда лучше уже? У тебя в шаблоне написано, что у типа T должен быть метод ToString(). Ты же не прописывешь что ToString должен быть из какого-то конкретного интерфейса. Тебе компилятор говорит, что у int нет такого метода. Чего ещё надо?
источник