Size: a a a

2020 April 12

AZ

Alex Zhukovsky in rust_offtopic
Bogdan
@Psilon
Почему в хачкеле ошибки работы с файлом через исключения а не через резалты?

https://wiki.haskell.org/Tutorials/Programming_Haskell/String_IO#File_IO
решили что так лучше хз
источник

AZ

Alex Zhukovsky in rust_offtopic
не уверен правильное ли это решение
источник

B

Bogdan in rust_offtopic
Поч не сделали

-> IO Either String IOError  вместо -> IO String
источник

G

Gymmasssorla in rust_offtopic
Читал, что исключения с I/O в Хаскелле применяются
источник

AZ

Alex Zhukovsky in rust_offtopic
потому что в ИО могут быть эксешпны любые
источник

G

Gymmasssorla in rust_offtopic
Но не понял почему
источник

AZ

Alex Zhukovsky in rust_offtopic
тебе все равно придется их хендлить
источник

AZ

Alex Zhukovsky in rust_offtopic
с Either придется и эксепшн ловить, и ейзер разбирать
источник

G

Gymmasssorla in rust_offtopic
А
источник

G

Gymmasssorla in rust_offtopic
Понял
источник

B

Bogdan in rust_offtopic
Ясно, так сделали "потому что"

Ну чуть гпустно, но ок.

Хотябы ио ограничен по surface area (как это га русском?)
источник

AZ

Alex Zhukovsky in rust_offtopic
да
источник

AZ

Alex Zhukovsky in rust_offtopic
у тебя ИО как такового быть почти не должно в программе
источник

AZ

Alex Zhukovsky in rust_offtopic
только всякие MonadError, MonadHttpConnection, и прочее
источник

AZ

Alex Zhukovsky in rust_offtopic
ну и вообще с ленивым языком часто удобнее значения использовать а не монады
источник

AZ

Alex Zhukovsky in rust_offtopic
например, вместо

if (_service.UserHasRights(userId)) { DoStuff(user)

ты делаешь

if userhasrights { DoStuff(user) }
источник

AZ

Alex Zhukovsky in rust_offtopic
Блин, я еще не протрезвел короч со вчера
источник

AZ

Alex Zhukovsky in rust_offtopic
трудно объяснять
источник

AZ

Alex Zhukovsky in rust_offtopic
в другой раз как-нибудь
источник

B

Bogdan in rust_offtopic
источник