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

Connected

演習

関数を作成する

前の演習では、safely() を使って到達不能な URL を見つける方法を見ました。read_lines() の安全版を呼び出し、$errors のリストを返す小さな処理を書きました。

この演習では、エラーのみに注目しない別のアプローチを試します。安全な関数を map して結果から "error" 要素だけを取り出すのではなく、safe_read() の出力から NULL 要素を直ちに discard() するヘルパー関数を書きます。

こうすることで、出力の $error や $result のどちらか一方だけを抽出するのではなく、要素に到達できるかどうかがわかります(到達できれば内容が $results に、できなければエラーが $error に入ります)。

urls ベクトルは用意されています。

指示

100 XP
  • read_lines() の安全版を作成してください。

  • safe_read_discard() という関数を作成し、安全版の read_lines() を実行して NULL 要素を discard() してください。

  • 用意された URL のリストに対して、この関数を map してください。