В этой лабораторной вам предстоит работать со списками, полученными в результате разбора веб-страниц. Для этих целей используются библиотеки FSharp.Data и *-conduit. Они позволяют изящно разбирать и запрашивать данные из таких иерархических структур как json, xml, html. В нашем случае мы будем работать с html-страницами, запрашивать содержимое тэгов с помощью селекторов и получать нужные нам данные в последовательностях и списках соответственно.
Примеры работы с библиотеками для каждого из языков находятся в соответствующих boilerplate-файлах: Lab3.fs и Lab3.hs. И в интернете: FSharp.Data, html-conduit
Через NuGet: Install-Package FSharp.Data . Или через nuget-плагин для monodevelop.
С использованием cabal: cabal install xml-conduit http-conduit html-conduit
Вполне вероятно, что некоторые страницы будут парситься некорректно, данные будет сложно извлечь, возникнут проблемы с кодировкой. Все эти и другие вопросы, как обычно, задавайте в issue.
| Вариант | Задание |
|---|---|
| 1 | По списку языков программирования википедии составить список императивных, не функциональных ЯП. |
| 2 | По списку языков программирования википедии составить список кортежей: год появления, названия. Языки без указания годов появления исключить. |
| 3 | По списку телефонных номеров МФТИ выяснить, кто делит один номер с коллегами. Телефонные номера нормализовать |
| 4 | Узнать, в каком году было больше и меньше всего выпускников факультета аэромеханики и летательной техники |
| 5 | Составить список 50 самых умных и самых строгих преподавателей |
| 6 | Составить список из ФИО преподавателей и их страниц в соц.сетях (linkedin, facebook, vk) |
| 7 | Найти самый дилнный и самый которкий пример для Hadoop |
| 8 | Составить список 50 самых комментируемых преподавателей |
| 9 | Составить список 50 комментариев для преподавателей с самой высокой оценкой |
| 10 | Узнать, в каких группах больше всего тем с пометкой "Важно:" на форуме sql.ru |
| 11 | Отсортировать список git-проектов Haskell, которые проходят тесты на Travis CI по количеству веток |
| 12 | Выяснить, какой процент из топ-500 проектов на языках Haskell и F# на github с наибольшим количеством звёзд составляют проекты на F# |
| 13 | Составить частоту обновлений проектов на F# на github (в течении последнего месяца, двух, и т.д.) |
| 14 | Узнать, от какой библиотеки зависит больше всего запрещённых пакетов на hackage |
| 15 | Найти пять самых скачиваемых пакетов за всё время на hackage |
| 16 | Какой процент составляют issue с комментариями от общего количества issue для NuGet? |
| 17 | Какое количество разработчиков NuGet уже переехали на github, если судить по их никам? |
| 18 | Кто из разработчиков Microsoft на github ведёт блог на blogs.msdn.com и указал его в профиле? |
| 19 | Попытаться найти по списку языков программирования википедии человека, который разработал больше всего ЯП |
| 20 | Какое количество ссылок на странице о LISP ведут на англоязычные ресурсы, а какие - на русскоязычные? |
| 21 | Под какой лицензией выпущено большинство проектов на F# на github, если судить по файлу LICENSE? |
| 22 | Сколько пакетов в Hackage относятся к нескольким категориям? |
| 23 | У какого факультета ФИВТ больше всего кафедр? |
| 24 | Узнать, в каком разделе форума sql.ru больше всего вопросов за последние 3 дня |
| 25 | Узнать, какое количество вопросов, заданных за последние 5 часов, остались без ответа |
| 26 | Кто, кроме anonymous'а оставил больше всего комментариев в этой теме? |
| 27 | Какой тэг самый популярный среди ста самых популярных пакетов на NuGet? |
| 28 | В каком месяце какого года было больше всего вопросов в рассылке эрланга? |