Size: a a a

2020 April 07

СД

Стас Донцов... in rust_offtopic
например, ты можешь реализовать функцию для передачи в другую функцию и естественно функция в которую ты передаешь свой мегакод может от тебя требовать какие-то штуки
источник

СД

Стас Донцов... in rust_offtopic
например есть функции высшего порядка которые требуют на вход функции сигнатуры A => Bool, если ты туда передашь дичь, то да, ругнется
источник

AZ

Alex Zhukovsky in rust_offtopic
Стас Донцов
но когда код приходит до тестировщика он смотрит на твою функцию и по сути классифицирует ее на пьюр или грязную и соответственно в первом случае ему надо будет обычное пропети тестирование, а в грязной функции он будет долго материться, читать твой код и искать скрытые состояния, сайд эффекты и прочую нечесть, чтобы нормально потом написать тест
в фп языке у тебя нет нечисти же
источник

AZ

Alex Zhukovsky in rust_offtopic
в худшем случае там m ()
источник

AZ

Alex Zhukovsky in rust_offtopic
собсна тестировать императивный клей не особо полезно
источник

СД

Стас Донцов... in rust_offtopic
Alex Zhukovsky
в фп языке у тебя нет нечисти же
io и прочее с сайдами эффектами, нет? что может содержать неявные состояния
источник

AZ

Alex Zhukovsky in rust_offtopic
Стас Донцов
io и прочее с сайдами эффектами, нет? что может содержать неявные состояния
так ИО не существует само по себе
источник

AZ

Alex Zhukovsky in rust_offtopic
ты можеь вызвать функцию с ИО а потом в теории её проинспектировать
источник

AZ

Alex Zhukovsky in rust_offtopic
если ты не отдал ИО в мейн то никакой нечисти не пройзойдет
источник

AZ

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

AZ

Alex Zhukovsky in rust_offtopic
скорее всякие (IsSqlBackend m, MonadError m) => Int -> String -> m ()
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
у остальных только если помогает
тогда и в лямбдах бы стоило указывать тип возврата?
источник

AZ

Alex Zhukovsky in rust_offtopic
Т-34 85
тогда и в лямбдах бы стоило указывать тип возврата?
если помогает
источник

СД

Стас Донцов... in rust_offtopic
ну тут сорян, про ио не буду рассказывать, слаб еще, я думал что бывают случаи когда так или иначе ты взаимодействуешь с ио/пишешь его для твоего случая чтения файла с диска/тп и вот когда ты его пишешь, то сигнатура функции априори подскажет другим что это ге пьюр функция а дичь какая-то и надо смотреть в ее содержимое
источник

AZ

Alex Zhukovsky in rust_offtopic
Стас Донцов
ну тут сорян, про ио не буду рассказывать, слаб еще, я думал что бывают случаи когда так или иначе ты взаимодействуешь с ио/пишешь его для твоего случая чтения файла с диска/тп и вот когда ты его пишешь, то сигнатура функции априори подскажет другим что это ге пьюр функция а дичь какая-то и надо смотреть в ее содержимое
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
если помогает
интересно, тогда в плюсах лямбды круче чем в шарпе. Более того, для них работает вывод типов, в отличие от шарповских
источник

AZ

Alex Zhukovsky in rust_offtopic
в ФП ты вместо того чтобы читать с сосноли принимаешь все аргументами
источник

AZ

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

AZ

Alex Zhukovsky in rust_offtopic
а в ленивом фп норм
источник

СД

Стас Донцов... in rust_offtopic
Т-34 85
тогда и в лямбдах бы стоило указывать тип возврата?
ну там есть момент, когда лямбду надо переписывать в нормальную функцию, если момент не настал, то я бы не ставил возвращаемое значение. например у тебя лямбда в одну строку: зачем тебе возвращаемое значение? если у тебя лямбда уже как спагетти из 5+ строк, то переводи ее в функуию и да, ставь возвращаемое значение
источник