Nov. 21st, 2007

yorool_gui: (Default)
Есть такой стандартный формат данных для хранения контактов - VCard. Формат этот предполагает хранение одного контакта в одном файле. Однако  программа синхронизации для моего сотового телефона при экспорте контактов в этом формате создает один файл со всеми контактами. Аутлук такого не понимает. Значит надо один vcf файл разбить на множество мелких, по файлу на контакт.
Обычно такие вещи делаются на Perl, но мне, разумеется, захотелось сделать это на Haskell.

Под катом программа на Haskell которая это делает
Read more... )
Доволен, что научился пользоваться StateT монадой. Но результат, честно говоря, не восхищает. Все же эта возня со State запутывает код. Можно наверное в данном случае использовать IORef вместо StateT - тогда весь код будет в IO монаде и выглядеть будет симпатичнее без повторяющихся lift.

Комментарии, как можно сделать лучше, приветствуются.
yorool_gui: (Default)
А вот такое решение достаточно функционально, или еще что-то стоит подкрутить
Read more... )
Я использую mapAccumL на списке строк из файла получая на выходе список из Just (номер файла, содержимое) или Nothing, затем эти Nothing-и сразу фильтрую. Но кажется, что запихивание в список Nothing-ов а потом их удаление - не лучшая идея. Может есть более красивый способ сгруппировать эти строки?

Profile

yorool_gui: (Default)
Michael Ilyin

April 2017

S M T W T F S
      1
2 345678
910 1112131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 29th, 2025 01:22 am
Powered by Dreamwidth Studios