Latihan 1: Piping & Redirection — Terminal

Latihan 1 dari materi Piping & Redirection di Terminal — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Simulasikan pipe terminal di JavaScript. Di terminal, cat app.log | grep ERROR | wc -l mengalirkan hasil tiap perintah ke perintah berikutnya. Fungsi pipe melakukan hal yang sama untuk function.

  1. Lengkapi function pipe(...fns). Dia harus mengembalikan function baru yang menerima satu input, lalu menjalankan semua function di fns berurutan dari kiri ke kanan: hasil function pertama jadi input function kedua, dan seterusnya.
  2. Pakai reduce untuk membawa nilainya dari satu function ke function berikutnya, dengan input sebagai nilai awal.
  3. Tanpa function sama sekali, pipe() mengembalikan input-nya apa adanya: pipe()(5) hasilnya 5.

Sisanya di kode awal sudah ada, biarkan begitu: logLines, filterErrors, countLines, toUpper, countErrors, getUpperErrors, dan dua console.log. Output-nya harus persis dua baris ini:

  1. 3
  2. ERROR: DATABASE TIMEOUT|ERROR: FILE NOT FOUND|ERROR: PERMISSION DENIED

Yang juga dicek: pipe(function (n) { return n + 1; }, function (n) { return n * 2; })(3) mengembalikan 8, pipe(function (s) { return s.trim(); })(" hi ") mengembalikan "hi", dan pipe()(5) mengembalikan 5.

Hint