Size: a a a

2021 May 31

[

[BRM]White Rabbit in rust_offtopic
Переслано от [BRM]White Rabbit
источник

goldstein опять in rust_offtopic
В Haskell просто нет Nat
А нормальные числа и в Idris не выражены через Пеано, это ж безумно плохо по производительности
источник

[

[BRM]White Rabbit in rust_offtopic
Там и нат приводят в интегеры
источник

[

[BRM]White Rabbit in rust_offtopic
Не совсем
источник

[

[BRM]White Rabbit in rust_offtopic

enum Fin<N>{
   Z,
   S(Fin<N-1>),
}
источник

goldstein опять in rust_offtopic
Да, действительно
источник

SS

Steel Sword in rust_offtopic
А
источник

[

[BRM]White Rabbit in rust_offtopic
Считаю, что рекурсивные определения это идиоматично
источник

[

[BRM]White Rabbit in rust_offtopic
Там кстати сигнатура неправильная у gen на скрине, надо n + 1 + m возвращать
источник

[

[BRM]White Rabbit in rust_offtopic
Где m это любой Nat
источник

r

red75prime in rust_offtopic
Точнее завтипы позволяют написать доказательство того, что программа/функция делает то-то и то-то (в частности, не крашится).
источник

goldstein опять in rust_offtopic
Можно просто разрешить конвертировать Fin n в Fin m где n < m
источник

[

[BRM]White Rabbit in rust_offtopic
Можно
источник

[

[BRM]White Rabbit in rust_offtopic
Я по сути это и делаю
источник

[

[BRM]White Rabbit in rust_offtopic
А, кстати, хуйня
источник

а

а это кто in rust_offtopic
Что такое Fin
источник

[

[BRM]White Rabbit in rust_offtopic
Там всё определение
источник

а

а это кто in rust_offtopic
Не, какой смысл вложен в слово Fin
источник

а

а это кто in rust_offtopic
типа Final или чего
источник

AN

Alex Noname in rust_offtopic
А как выражены? Как грёбаный Nat выражен в рантайме? И это только Nat или любое похожее рекурсивное определение можно свернуть так?
источник