С обработкой ошибок в Rust надо явно что-то придумывать. Мне категорически нравится, что в языке нет исключений, но без синтаксического сахара вроде хаскелевской конструкции do код с аккуратной обработкой ошибок визуально превращается в простыню с перекладыванием значений из одних типов в другие
(
Read more... )
Но в лоб всё равно не срастается: в хаскеле оно красиво сработает, потому что егонный список - это функтор. А в Rust используется механизм итераторов (в примере выше split возвращает итератор подстрок), который, вроде бы, по-сути тоже ленивый список, только в профиль, но при этом не функтор. Почему так - я не готов теоретизировать: подозреваю, что не может быть выполнено правило "fmap id = id", в том числе, потому что итератор может быть мутабельный.
Так что надо придумывать какие-то пути обхода.
Reply
Другое дело, что в этом случае скорее всего придется выкинуть getopts и писать разбор параметров ручками, но это может и к лучшему.
Reply
Leave a comment