Haskell удаленная файловая библиотека ввода-вывода (например, kio)? - PullRequest
1 голос
/ 29 января 2012

Есть ли удаленная файловая библиотека ввода-вывода для Haskell? Например, в KDE подсистема kio предоставляет интерфейс в стиле URL для доступа к файлам, поэтому большинство приложений KDE могут открывать удаленный файл через SFTP так же легко, как локальный. Спасибо!

1 Ответ

3 голосов
/ 29 января 2012

Нет ничего, что обеспечивало бы унифицированный интерфейс файлового esque на основе URL, хотя технически вы могли бы взломать его с помощью поддержки GHC для определения пользовательских типов Handle s (как используется в knob ).

Но вы можете согласованно обрабатывать потоковые данные из различных источников с помощью пакетов в итеративном стиле, таких как pipeline и enumerator . Например, существуют интерфейсы каналов для файлов , HTTP (IMO лучший HTTP-интерфейс для Haskell, даже если каналы не используются напрямую), FTP , сетевые сокеты и т. д. ИМО, они лучше подходят для обработки данных из нескольких источников, чем решение для ввода-вывода файлов в стиле Handle; такие вещи, как поиск, не имеют смысла в контексте последовательного сетевого потока.

Конечно, это не решает проблему обеспечения согласованного пользовательского интерфейса для всех этих; потребуется дополнительная работа. Простейшим путем, вероятно, является обработка URI с из стандартного сетевого пакета, сопоставление их с Source с (или эквивалентным образом) соответствующим образом. Для таких вещей, как файлы и HTTP, это должно быть так же просто, как обработка протокола и передача оставшейся части URI в виде строки в соответствующую библиотеку.

В итоге: нет, но все необходимые элементы для обработки локальных и удаленных данных в едином порядке, как это, присутствуют, и часть пользовательского интерфейса не должна быть слишком трудной для написания, если вам это нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...