Посты с тэгом fp


Еще немного переносов

Кто о чем, а вшивый всё о бане. На этот раз эта штука мне понадобилась на Хаскелле, перенёс питонью реализацию почти дословно, что, наверное, плохо.


Зачем это мне нужно? Вот эта штука, если среди прочего сделать так:

то все производимые ею русские тексты будут с расставленными переносами.



Data.ByteString, Data.Text и Text.Parsec

Вчера весь день ломал себе черепную коробку об матчинг юникодных символов парсековыми 'char', 'oneOf' и 'noneOf' в условиях парсера над ByteString-ом. То юникоды не матчились (если делать внаглую), то аутпут бился (если делать Stream над ByteString с UTF8.uncons). И так и эдак выходило криво.

Сейчас вот утром встал, перепилил всё на Data.Text буквально за 15 минут — код сократился процентов на 15-20, глюки исчезли. волосы стали мягкими и шелковистыми.

Такие дела. Надо было это вчера делать, может сны бы снились не такие мрачные.

P.S. Что характерно, импортер на питоне и реглуярках раобтает раз в 100 (буквально) медленней, чем хаскельный на парсеке, который я запускаю через runghc (пока пилю).



Перестановки на Scheme

В качестве небольшого упражнения по материалам прошлой статьи попробовал реализовать питоновскую функцию combinations() на Scheme. ;; ;; (define (generate n)) -> create list of string where ;; * length of each string is n ;; * each symbol of string is '0' or '1' ;; * the list has all possible combinations of symbols '0' and '1' (define (generate n) (generate-engine (list "0" "1") n))