Je suis un nouveau à la programmation fonctionnelle. Je suis en train de gratter un site Web en utilisant Scalpel et j'ai besoin d'extraire des informations à partir des liens contenus dans ce site. Ce que je peux extrapoler est juste une partie du lien et je dois ajouter à la chaîne "http://www.google.com/"
à chacun de ces liens. Je ne peux pas faire un ++
normal parce que je n'ai pas une liste de String
s.Comment pouvez-vous ajouter une chaîne à une liste de Monades dans Haskell
Voici le code:
{-# LANGUAGE OverloadedStrings #-}
import Text.HTML.Scalpel
main :: IO()
main = do
res <- scrapeURL "http://www.whateverLink/" scrapeComic
print res
scrapeComic :: Scraper String [[String]]
scrapeComic =
chroots ("ul" @: ["id" @= "research-teachinglist"]) scrapeLink
scrapeLink :: Scraper String [String]
-- This returns me the parts of the links I want
scrapeLink = (attrs "href" "a")
-- I tried this, but it doesn't work
-- scrapeLink = mapM_ ("http://www.google.com/" ++) (attrs "href" "a")
Toutes les idées?
Merci
'fmap (carte ("http://www.google.com/" ++)) scrapeLink', mais vous devriez probablement jeter un coup d'œil à la typeclassopedia. Cette question demande plus ou moins un tutoriel sur la monade, qui est hors-sujet sur SO. – Zeta
Cela a fonctionné! Je vais regarder quelques tutoriels de monade. Merci – BourbonCreams