Size: a a a

2020 May 03

AB

Artöm Bakri Al-Sarmi... in rust_offtopic
polunin.ai
например
genNumber: (val >=0 & val <=10)

из этой функции вернется число в жиапазоне от 0 до 10
Это один тип?
type T = 0
type U = val == 0
type V = val <= 0 && val >= 0
источник

p

polunin.ai in rust_offtopic
Artöm Bakri Al-Sarmini
Это один тип?
type T = 0
type U = val == 0
type V = val <= 0 && val >= 0
да
источник

e

egoarka in rust_offtopic
polunin.ai
1 + строка
у меня такого точно не будет, фу жс, фу
ну ка, а как у тебя будет тогда? explicit conversion ?
fmap to_str 1 + "stroka" ? какое тогда определение* у to_str будет?
источник

EG

Emmanuel Goldstein in rust_offtopic
Artöm Bakri Al-Sarmini
Это один тип?
type T = 0
type U = val == 0
type V = val <= 0 && val >= 0
Ох лол
Вот так ещё прикольно было бы
fn get_random_number<T: Int>() -> T { todo!() }
let x = get_random_number::«val >= 0 && val <= 10»();
источник

e

egoarka in rust_offtopic
Emmanuel Goldstein
Ох лол
Вот так ещё прикольно было бы
fn get_random_number<T: Int>() -> T { todo!() }
let x = get_random_number::«val >= 0 && val <= 10»();
втф а че прикольного
источник

EG

Emmanuel Goldstein in rust_offtopic
egoarka
втф а че прикольного
Ну, у тебя есть полиморфная по типу результата функция
источник

EG

Emmanuel Goldstein in rust_offtopic
С такими типами ты можешь задать ей диапазон не выходя из типов
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Ох лол
Вот так ещё прикольно было бы
fn get_random_number<T: Int>() -> T { todo!() }
let x = get_random_number::«val >= 0 && val <= 10»();
ну вроде ложится на систему типов
источник

EG

Emmanuel Goldstein in rust_offtopic
Технически это возможно
Для этого нужно сделать трейты:
1. В типе конечное количество значений
2. Получить N-ное значение типа
источник

EG

Emmanuel Goldstein in rust_offtopic
Emmanuel Goldstein
Технически это возможно
Для этого нужно сделать трейты:
1. В типе конечное количество значений
2. Получить N-ное значение типа
Желательно их автоматически дерайвить
источник

EG

Emmanuel Goldstein in rust_offtopic
Например,
enum X { A(bool), B(bool) }

очевидные четыре значения
источник

p

polunin.ai in rust_offtopic
egoarka
ну ка, а как у тебя будет тогда? explicit conversion ?
fmap to_str 1 + "stroka" ? какое тогда определение* у to_str будет?
мне нравится как в расте - debug и display
debug: Debug t -> String
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
мне нравится как в расте - debug и display
debug: Debug t -> String
Ну в хаскелле примерно то же самое, есть show
источник

EG

Emmanuel Goldstein in rust_offtopic
А вот аналога Display нет
источник

EG

Emmanuel Goldstein in rust_offtopic
λ => fmap (\a -> (show a) ++ "bar") [1..10]
["1bar","2bar","3bar","4bar","5bar","6bar","7bar","8bar","9bar","10bar"]
источник

e

egoarka in rust_offtopic
Emmanuel Goldstein
Ну, у тебя есть полиморфная по типу результата функция
var a = 0
var b = 99

fn get_rnd(from: int, to: int): result from ... to

get_rnd(a, b) match {
0: ..
1: ..
 ..
 ..
99: ..
}


такую?
источник

EG

Emmanuel Goldstein in rust_offtopic
egoarka
var a = 0
var b = 99

fn get_rnd(from: int, to: int): result from ... to

get_rnd(a, b) match {
0: ..
1: ..
 ..
 ..
99: ..
}


такую?
Да, только без аргументов
источник

p

polunin.ai in rust_offtopic
egoarka
var a = 0
var b = 99

fn get_rnd(from: int, to: int): result from ... to

get_rnd(a, b) match {
0: ..
1: ..
 ..
 ..
99: ..
}


такую?
fn get_rng<T: Int>() -> T
источник

e

egoarka in rust_offtopic
так это же реально типа через енамы выразить и не только
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
fn get_rng<T: Int>() -> T
На самом деле, скорее, T: Finite
источник