proj1 DIR [DEPTH]- Обязательный параметр - директория
- Опциональный параметр - глубина
Программа спускается не дальше, чем на глубину (если она указана)
Выводит количество файлов и общий размер. Если возникают ошибки - вывести их и продолжить работу.
Для реализации: listDirectory, getFileSize из пакета directory; getArgs из System.Environment.
Выдаёт для каждой директории не глубже DEPTH количество файлов в ней.
Выдаёт для каждой директории не глубже DEPTH - общий размер файлов.
Например,
$ ls -la
drwxr-xr-x - red 22 окт 16:38 app
.rw-r--r-- 105 red 22 окт 16:38 CHANGELOG.md
.rw-r--r-- 824 red 22 окт 16:41 du.cabal
.rw-r--r-- 641 red 22 окт 16:43 README.md
$ proj1 . 0
Count:
. 4
Size:
. 1570
$ proj1 .
Count:
. 4
./app 1
Size:
. 1657
./app 87
Использовать mtl. Могут потребоваться Reader, State, Writer, Except
Дедлайн: 25 ноября 2022 г.
- добавить в тип
TBankсколько было у счета переводов (добавлений или снятий) и какая общая сумма переводов - написать функцию
isWithdrawOk, вынести в неё логику проверки снятия:- на счете больше денег, чем пытаемся снять
- если сумма снятия больше 1000, то должно быть больше 10 переводов
- сумма снятия не больше, чем 5 * средний размер перевода (общая сумма переводов / количество переводов)
- использовать её внутри
addMoney,withdraw, ... - проверить, что всё продолжает работать
Пусть есть такие переводы.
- Алиса кладет 100 на свой счет.
- Алиса: баланс 100, кол-во 1, общая сумма 100.
- Алиса снимает 100 со счета.
- Алиса: баланс 0, кол-во 2, общая сумма 200.
- Боб кладет 100 на свой счет.
- Алиса: баланс 0, кол-во 2, общая сумма 200.
- Боб: баланс 100, кол-во 1, общая сумма 100.
- Боб переводит Алисе 50.
- Алиса: баланс 50, кол-во 3, общая сумма 250.
- Боб: баланс 50, кол-во 2, общая сумма 150.
Дедлайн: 2 декабря 2022 г.
- написать парсер для CSV (разделители - запятые; внутри полей, написанных в кавычках запятые не действуют)
col1,col2,col3
r2 c1,r2 c2,r2 c3
"r3,c1","r3,c2","r3,c3"Должен получиться csvParser :: Parser [[String]].
В примере он должен вернуть
[["col1","col2","col3"],["r2 c1","r2 c2","r3 c3"],["r3,c1","r3,c2","r3,c3"]]
Дедлайн: 16 декабря 2022 г.