Я пытаюсь написать простой скрипт, который принимает в качестве входных данных URL (или набор URL-адресов) и в качестве выходных данных загружает содержимое этой страницы в файл (в частности, я пытаюсь загрузить сотни файлов JSON, которыев конечном счете, я хочу использовать разные файлы JSON).
В файле download.hs
у меня есть import "HTTP" Network.HTTP
.
Когда я запускаю: $ ghc -o download download.hs
Я получаю следующую ошибку:
download.hs:24:1: error:
Could not find module ‘Network.HTTP’
Perhaps you meant Network.TLS (needs flag -package-key tls-1.5.2)
|
24 | import "HTTP" Network.HTTP
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
Моя версия GHC:
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.6.5
Я такжеполучить такие ошибки, как:
download.hs:22:1: error:
Could not load module ‘Control.Concurrent.Async’
It is a member of the hidden package ‘async-2.2.2’.
You can run ‘:set -package async’ to expose it.
(Note: this unloads all the modules in the current scope.)
|
22 | import "async" Control.Concurrent.Async (mapConcurrently)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Я думаю, что между версиями ghc произошли серьезные изменения, и примеры, которые я нахожу в Интернете для начала, могут быть устаревшими.
Были ли какие-либо указания на выполнение, начатые с Haskell, и особенно простые способы загрузки и разметки файлов JSON в Haskell?
Я следовал этому примеру: Запуск параллельной загрузки URL-адресов в Haskell , вот где я получил код, который сейчас ошибается.