Size: a a a

F# Flood: всем по тайпклассу

2020 April 14

DS

Doge Shibu in F# Flood: всем по тайпклассу
Такое может сделать через зависимые типы
источник

VK

Vladislav Khapin in F# Flood: всем по тайпклассу
Ayrat Hudaygulov
Переслано от Юрий Бадальянц
На самом деле мне в рантайме просто нужно такое число, которое описывает длину массива. У меня есть тайплкасс, который сериализует данные в массив фиксированной длины. Я могу добавить просто ещё одно полюшко в трейт, реализующий тайпкласс, типа arraySize, но хочу попробовать на литералах сделать
источник

AH

Ayrat Hudaygulov in F# Flood: всем по тайпклассу
Doge Shibu
Я не знаю, что там происходит у них в чате, но например, ты хочешь создать такой массив по переданному пользователю числу
Сделать массив по переданному числу... Звучит как задача для зависимых типов!
источник

DS

Doge Shibu in F# Flood: всем по тайпклассу
Ayrat Hudaygulov
Сделать массив по переданному числу... Звучит как задача для зависимых типов!
Создать массив константной длины n по переданному числу n
источник

AH

Ayrat Hudaygulov in F# Flood: всем по тайпклассу
Doge Shibu
Создать массив константной длины n по переданному числу n
Array.zeroInit N
источник

AH

Ayrat Hudaygulov in F# Flood: всем по тайпклассу
Массив очень константной длины
источник

AH

Ayrat Hudaygulov in F# Flood: всем по тайпклассу
Длину можно достать в рантайме так

arr.Length
источник

DS

Doge Shibu in F# Flood: всем по тайпклассу
Ayrat Hudaygulov
Array.zeroInit N
Нет, ты потом сможешь сделать: Array.get (N+1) myArray и компилятор тебе не помешает
источник

DS

Doge Shibu in F# Flood: всем по тайпклассу
А вот этого и хочется избежать
источник

AH

Ayrat Hudaygulov in F# Flood: всем по тайпклассу
Doge Shibu
Нет, ты потом сможешь сделать: Array.get (N+1) myArray и компилятор тебе не помешает
Он мне и так не помешает. Мы ж в РАНТАЙМЕ
источник

DS

Doge Shibu in F# Flood: всем по тайпклассу
Ayrat Hudaygulov
Он мне и так не помешает. Мы ж в РАНТАЙМЕ
Помешает
источник

AH

Ayrat Hudaygulov in F# Flood: всем по тайпклассу
Doge Shibu
Помешает
Нет. Там нет компилятора
источник

DS

Doge Shibu in F# Flood: всем по тайпклассу
Ayrat Hudaygulov
Нет. Там нет компилятора
Тебе надо будет в коде предоставить доказательство того, что данное пришедшее N удовлетворяет нужным условиям.

И код скомпилиться, только если нужные проверки есть
источник

AH

Ayrat Hudaygulov in F# Flood: всем по тайпклассу
Doge Shibu
Тебе надо будет в коде предоставить доказательство того, что данное пришедшее N удовлетворяет нужным условиям.

И код скомпилиться, только если нужные проверки есть
Тогда это не рантайм, ты же понимаешь
источник

AH

Ayrat Hudaygulov in F# Flood: всем по тайпклассу
Речь шла про рантайм
источник

DS

Doge Shibu in F# Flood: всем по тайпклассу
Ayrat Hudaygulov
Тогда это не рантайм, ты же понимаешь
Ты не понимаешь до конца, о чем речь, сейчас скину пример
источник

AH

Ayrat Hudaygulov in F# Flood: всем по тайпклассу
Doge Shibu
Ты не понимаешь до конца, о чем речь, сейчас скину пример
А, ты про евиденсы тайп классов
источник

DS

Doge Shibu in F# Flood: всем по тайпклассу
Ayrat Hudaygulov
А, ты про евиденсы тайп классов
Ага
источник

DS

Doge Shibu in F# Flood: всем по тайпклассу
источник

DB

Denis Bobrov in F# Flood: всем по тайпклассу
ммм а зачем им тогда типизация если есть рантайм?)
источник