हमारी फंक्शन को Purrrfect बनाना
हम अब भी अपनी फंक्शन को बेहतर बना रहे हैं ताकि यह जाँच सके कि URLs की किसी सूची में ऐसे एलिमेंट हैं जो उपलब्ध नहीं हैं.
आइए अब तक लिखे गए कोड की समीक्षा करें:
- एक error extractor, जो
safely()औरmap(.x, "error")को जोड़कर बना है. - एक "non-null" extractor, जो
safely()औरdiscard(.x, is.null)को जोड़कर बना है. - एक 404 generator, जो
possibly(.x, otherwise = 404)से बना है और जिसे एक फंक्शन में बदला गया था.
हम इस फंक्शन का व्यवहार थोड़ा बदलेंगे: अब आप तय कर सकेंगे कि रिटर्न में results चाहिए या errors.
इससे आप एक ही फंक्शन से दो सवालों के जवाब दे पाएँगे: कौन-से URLs तक पहुँचा नहीं जा सकता, और कौन-से पहुँचा जा सकता है? ऐसा करने के लिए, आप इस फंक्शन के अंदर "type" नाम का एक पैरामीटर जोड़ेंगे.
urls वेक्टर और safe_read() आपके वर्कस्पेस में उपलब्ध हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट फ़ंक्शनल प्रोग्रामिंग विथ purrr
अभ्यास निर्देश
फंक्शन परिभाषा पूरी करें.
- URLs की सूची पर
safe_read()को map करें. - रिजल्ट के नामों को URLs की सूची से सेट करें.
- रिजल्ट को transpose करके $result और $error की सूची में बदलें.
pluck()का उपयोग करकेtypeएलिमेंट निकालें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Complete the function definition
url_tester <- function(url_list, type = c("result", "error")) {
type <- match.arg(type)
url_list %>%
# Apply safe_read to each URL
___(___) %>%
# Set the names to the URLs
___(___) %>%
# Transpose into a list of $result and $error
___() %>%
# Pluck the type element
___(___)
}
# Try this function on the urls object
url_tester(urls, type = "error")