У меня есть данные CSV (унаследованные - здесь нет выбора), которые мне нужно использовать для создания экземпляров типов данных в Haskell.С парсингом CSV проблем нет - обучающие программы и API имеются в большом количестве.
Вот что генерирует 'show' для моего упрощенного урезанного тестового примера:
JField {fname = "cardNo", ftype = "str"} (string representation)
Я могу прочитатьпреобразовать эту строку в запись данных JField.Мои данные CSV - это просто значения полей, поэтому строка CSV, соответствующая приведенному выше JField:
cardNo, str
, и я читаю их как список строк ["cardNo", "str"]
Итак, достаточно просто грубо форсировать точный формат «строкового представления» (но моя цель - писать строковое форматирование в Java или Python в Хаскеле).
Я думал о том, чтобы сделать что-то вроде этого (первый список является статическим, а второй список будет считан файлом CSV):
let stp1 = zip ["fname = ", "ftype ="] ["cardNo", "str"]
, что приведет к
[("fname = ","cardNo"),("ftype =","str")]
и затем объединение кортежей - либо явно с помощью ++, либо каким-то более умным способом, который еще предстоит определить.
Это мой первый простой фрагмент кода вне учебных пособий, поэтому я хотел бы знать, если этокажется вполне приемлемым для Хаскеллианским способом сделать это, или какие явно лучшие способы можно построить именно таким образом: fname = "cardNo", ftype = "str"
Не ожидая решения (это не домашняя работа, этоучебное упражнение), а скорее критика или рекомендации для лучшего способа сделать это.Перебрать это было бы легко, но победило бы мою цель - научиться