1. Learn
  2. /
  3. Courses
  4. /
  5. purrr で学ぶ中級関数型プログラミング

Connected

Exercise

関数を仕上げましょう

URL のリストに到達不能な要素が含まれているかを検出する関数を、引き続き磨いていきます。

ここまでに実装した内容を振り返りましょう。

  • safely() と map(.x, "error") の組み合わせによるエラー抽出器。
  • safely() と discard(.x, is.null) の組み合わせによる「非 NULL」抽出器。
  • possibly(.x, otherwise = 404) を使い、関数化した 404 生成器。

この関数の挙動を少し変更します。結果とエラーのどちらを返すかを選べるようにしたいのです。

これにより、1 つの関数で「到達不能な URL はどれか」と「到達可能な URL はどれか」という 2 つの質問に答えられるようになります。そのために、この関数に「type」という引数を追加します。

urls ベクターと safe_read() はワークスペースに用意されています。

Instructions

100 XP

関数定義を完成させてください。

  • URL のリストに safe_read() を map します。
  • 結果の名前を URL のリストに設定します。
  • 結果を転置して、$result と $error のリストにします。
  • pluck() を使って type 要素を取り出します。