Size: a a a

2020 January 26

KR

Kai Ren in rust_offtopic
Gymmasssorla
void compose(f: A => B, g: B => C): A => C {
   (a) g(f(a))
}


Возвращаемая лямбда должна иметь пересечение исключений из f и g. Как это сделать?
Почему пересечение, разве не обьединение?
источник

G

Gymmasssorla in rust_offtopic
Kai Ren
Почему пересечение, разве не обьединение?
Опечатка
источник

KR

Kai Ren in rust_offtopic
catch (LambdaAError | LabmdaBError e)
источник

KR

Kai Ren in rust_offtopic
Я уже не помню кто так умеет. Вроде JS
источник

G

Gymmasssorla in rust_offtopic
Ты в сигнатуре это обозначь
источник

KR

Kai Ren in rust_offtopic
Ну или ваять свой тип сверху
источник

G

Gymmasssorla in rust_offtopic
В сигнатуре compose это можно обозначить?
источник

KR

Kai Ren in rust_offtopic
throws LambdaAError, LabmdaBError
источник

KR

Kai Ren in rust_offtopic
разве не достаточно?
источник

G

Gymmasssorla in rust_offtopic
Но f и g могут возвращать более одного исключения
источник

KR

Kai Ren in rust_offtopic
И что?
источник

KR

Kai Ren in rust_offtopic
Здесь завязка на интерфейс же. Могут кидать всё, что ему удовлетворяет.
источник

DS

Doge Shibu in rust_offtopic
Gymmasssorla
Кстати, помнишь ты говорил, что бросание исключений ссылочно прозрачно? В красной книге Скала наоборот говорят, т.к. Если сделать x = throw Exception и заменить в разных блоках функции, то поведение программы изменится
Потому что джава исключения сидят вне IO
источник

G

Gymmasssorla in rust_offtopic
Kai Ren
Здесь завязка на интерфейс же. Могут кидать всё, что ему удовлетворяет.
Ну если так можно, то всё равно оверкилл. Это как создавать новый трейт в Rust для перегрузки функций
источник

KR

Kai Ren in rust_offtopic
Gymmasssorla
Ну если так можно, то всё равно оверкилл. Это как создавать новый трейт в Rust для перегрузки функций
Но при этом создавать новый enum-тип для ошибки в Rust - это норма. Здесь аналогично.
источник

G

Gymmasssorla in rust_offtopic
Kai Ren
Но при этом создавать новый enum-тип для ошибки в Rust - это норма. Здесь аналогично.
Для меня ненормально. Должен быть способ делать на лету тип-суммы так же, как и типы-произведения (кортеж)
источник

G

Gymmasssorla in rust_offtopic
Сейчас из решений Either, Either2, Either3, etc
источник

KR

Kai Ren in rust_offtopic
Gymmasssorla
Для меня ненормально. Должен быть способ делать на лету тип-суммы так же, как и типы-произведения (кортеж)
Ну в TS такое есть. В Rust пока нету. Вопрос сахарка.
источник

G

Gymmasssorla in rust_offtopic
В общем, я наверное хочу низкоуровневый Идрис
источник

A

Agrailag in rust_offtopic
@vlad20012 а из-за чего в clion мб такой стереоэффект у текста?
источник