17 Pertanyaan dan Jawaban Wawancara Haskell Teratas (2025)

Berikut adalah pertanyaan dan jawaban wawancara Bahasa Haskell untuk kandidat baru dan berpengalaman untuk mendapatkan pekerjaan impian mereka.


1) Jelaskan apa itu Haskell?

Haskell adalah bahasa pemrograman fungsional tingkat lanjut, menyediakan integrasi yang mudah dengan bahasa lain, konkurensi bawaan, dan perpustakaan yang kaya. Pemrograman Haskell berpusat pada evaluasi ekspresi daripada mengeksekusi instruksi.

Unduh PDF Gratis: Pertanyaan dan Jawaban Wawancara Haskell


2) Sebutkan apa manfaat ekspresi Haskell?

Manfaat ekspresi Haskell

  • Di Haskell, variabel, struktur data dll. tidak dapat diubah
  • Ekspresi Haskell tidak memiliki masalah seperti memperbarui variabel global atau mencetak ke layar
  • Setiap kali memanggil fungsi yang sama dengan argumen yang sama akan menghasilkan keluaran yang sama
  • Dimungkinkan untuk memisahkan I/O dari kode lainnya, mengurangi kesalahan pemrograman; ini adalah fitur yang sangat penting dari pemrograman Haskell
  • Tanpa memberi tahu Haskell tipe data apa yang harus dibaca, fungsi baca dalam program akan mengarahkan apa yang harus dibaca.

3) Sebutkan apa itu Monad di Haskell?

Monad di Haskell hanyalah tipe yang operasi >>= didefinisikan. I/O Haskell didasarkan pada Monads. Ini adalah cara khusus untuk mengikat operasi bersama-sama atau dengan kata lain, ini adalah cara membungkus sesuatu dan menyediakan metode untuk melakukan operasi pada barang yang dibungkus tanpa membukanya.


4) Sebutkan berbagai jenis Monad yang bisa ada di Haskell?

Setiap monad memiliki penerapan fungsi pengikatannya sendiri

  • Kegagalan Monad
  • Kesalahan Monad
  • Daftar Monad
  • Pembaca Monad
  • Negara Bagian & Penulis Monad

5) Jelaskan sistem tipe untuk Haskell?

  • Saat bekerja dengan Haskell, langkah pertama dalam menulis program Haskell biasanya adalah menuliskan semua tipenya.
  • Bahasa Haskell seperti transkrip, hanya dengan melihat tipe fungsinya, ia akan memberi tahu Anda tentang apa yang mungkin dilakukan fungsi tersebut
  • Mengubah kesalahan run-time menjadi kesalahan waktu kompilasi, lebih baik memperbaiki kesalahan terlebih dahulu
Pertanyaan Wawancara Haskell
Pertanyaan Wawancara Haskell

6) Jelaskan bagaimana fungsi didefinisikan di Haskell?

Definisi fungsi di Haskell terdiri dari sejumlah persamaan kondisi. Di awal masing-masing persamaan, setelah nama fungsi, terdapat pola yang menunjukkan data mana yang berlaku untuk setiap persamaan. Setelah itu ada beberapa klausa, yang mewakili kasus berbeda dan klausa Where untuk menampung definisi lokal.


7) Jelaskan apa perbedaan antara $ (tanda dolar) dan . (dot) ?

Di Haskell, operator tanda $ digunakan untuk menghindari tanda kurung, apa pun yang muncul setelahnya akan diutamakan daripada apa pun yang muncul sebelumnya. Misalnya, (putStrLn .show) (1+1) dapat diganti dengan putStrLn . tampilkan $1+1. Ketika,. (titik) fungsi utama adalah untuk merangkai fungsi dan bukan untuk menghindari tanda kurung.


8) Sebutkan apa perbedaan antara Haskell dan erlang?

                          Haskell                                erlang
  • Ini melayani fitur-fitur seperti fungsi tingkat tinggi, persamaan, evaluasi malas, pencocokan pola pada tipe data aljabar, dll.
  • Program Haskell adalah kumpulan modul yang terdiri dari nilai, tipe data, sinonim tipe, dll. Modul Haskell mengimpor definisi dari modul lain dan mengekspor ulang beberapa di antaranya termasuk beberapa definisinya sendiri sehingga tersedia untuk modul lain.
  • Tidak ada dukungan bawaan untuk konkurensi di Haskell
  • Haskell menampilkan pengetikan statis
  • Dalam beberapa refraktor Haskell, informasi tipe diperlukan agar berhasil
  • Haskell lebih berguna untuk komputasi yang kompleks dan simbolis
  • Erlang menawarkan fitur seperti pencocokan pola, fungsi tingkat tinggi, konkurensi, pemuatan ulang kode dinamis, toleransi kesalahan, dll.
  • Di Erlang, modul hanya dapat mengekspor fungsi yang ditentukan dalam modul itu sendiri.
  • Erlang telah membangun dukungan untuk konkurensi
  • Erlang menampilkan pengetikan dinamis
  • Untuk sebagian besar refraktor Erlang, informasi jenis diperlukan
  • Tipe data dasar Erlang adalah angka, atom, pengidentifikasi proses, biner, dan port
  • Erlang unggul dalam melakukan tugas-tugas sederhana dengan konkurensi tinggi

9) Jelaskan mengapa tipe data aljabar Haskell tertutup?

Tipe data aljabar Haskell tertutup karena memudahkan penulisan fungsi total. Fungsi yang menghasilkan suatu hasil, untuk semua nilai yang mungkin dari tipenya.

Pertanyaan wawancara Bahasa Haskell
Pertanyaan wawancara Bahasa Haskell

10) Jelaskan apa itu Prelude di Haskell?

Di Haskell, pendahuluan adalah modul yang terdiri dari sekumpulan definisi standar yang secara implisit diimpor ke dalam program Haskell.


11) Sebutkan tipe numerik di "pendahuluan" Haskell?

Di Haskell, ada lima tipe numerik yang disertakan

  • Int: Ini adalah bilangan bulat yang memiliki presisi setidaknya 30 bit
  • Bilangan bulat: Ini adalah bilangan bulat yang memiliki presisi tak terbatas
  • Mengapung: Ini adalah angka floating point presisi tunggal
  • ganda: Ini adalah bilangan floating point presisi titik ganda
  • Rasional: Ini adalah tipe pecahan tanpa kesalahan pembulatan

12) Sebutkan bagaimana tipe data digabungkan di Haskell?

Di Haskell, tipe data digabungkan dalam dua cara

  • Daftar: Itu ada di dalam [tanda kurung siku]
  • Tupel: Itu masuk (tanda kurung)

13) Sebutkan jenis polimorfisme apa saja yang akan Anda temui di Haskell?

Di Haskell, ada dua jenis polimorfisme

  • Polimorfisme Parametrik: Suatu fungsi bersifat polimorfik secara parametrik, jika berperilaku sama untuk semua tipe, setidaknya dalam satu parameter tipenya
  • Polimorfisme Terikat: Anda memiliki polimorfisme terbatas atau ad hoc, jika Anda memiliki perilaku khusus yang ingin Anda miliki untuk kumpulan tipe tertentu

14) Jelaskan bagaimana Anda dapat mengimplementasikan “ord” untuk tipe data aljabar di Haskell?

Di Haskell, cara terbaik untuk mengimplementasikan “ord” adalah dengan menambahkan turunan (Persamaan, Ord) ke definisi tipe.


15) Jelaskan mengapa “evaluasi malas” di Haskell berguna?

Di Hazkel, evaluasi malas berguna karena alasan berikut

  • Nilai tidak akan dihitung jika tidak akan digunakan
  • Haskell memastikan bahwa urutan ekspresi yang dievaluasi tidak akan mempengaruhi hasilnya.
  • Selain itu, ini memungkinkan daftar yang tak terbatas

16) Jelaskan apa perbedaan antara “data” dan “Tipe baru” di Haskell?

  • Tipe baru: Ini menjamin bahwa data Anda akan memiliki representasi yang sama persis saat runtime, seperti tipe yang Anda bungkus
  • Tanggal: Ini mendeklarasikan struktur data baru saat runtime

17) Sebutkan apa perbedaan antara Haskell (++) dan (:)?

  • (:) operator: Ini dikenal sebagai operator “kontra” dan digunakan untuk menambahkan elemen head ke daftar
  • (++) operator: Ini adalah operator rangkaian daftar, dan dibutuhkan dua operan dan menggabungkannya menjadi satu daftar

Pertanyaan wawancara ini juga akan membantu dalam viva Anda (lisan)

Bagikan

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai *