Trentech.id Logo
No Result
View All Result
  • Login
  • Register
  • Terbaru
  • Berita
  • Startup
  • Bisnis
  • Learn
  • Games
  • Blockchain
  • Gadget
  • Terbaru
  • Berita
  • Startup
  • Bisnis
  • Learn
  • Games
  • Blockchain
  • Gadget
Logo Trentech.id
No Result
View All Result
  • Terbaru
  • Berita
  • Startup
  • Bisnis
  • Learn
  • Games
  • Blockchain
  • Gadget

Hoogle – Mesin Pencari untuk Haskeller

19 January 2017
in Learn

Hoogle adalah mesin pencari API Haskell. Dengan Hoogle, kita bisa mencari tahu macam-macam fungsi yang bisa kita gunakan. Menariknya, informasi seperti di module mana fungsi itu berada, berapa jumlah parameter-nya, output-nya dalam bentuk tipe data apa, serta (beberapa) ada contoh penggunaannya. Karena itu, Hoogle berperan penting dalam proses belajar Haskell. Tertarik bermain dengan Hoogle? Lalu, bagaimana caranya menggunakan Hoogle?

Tulisan ini adalah kelanjutan dari tulisan sebelumnya yaitu “Memulai Belajar Haskell“. Selama belajar, kita akan terus menggunakan Hoogle sebagai referensi fungsi-fungsi Haskell.

Sebagai permulaan, kita coba cari tahu mengenai fungsi putStrLn di Hoogle. Silakan masukan fungsi yang ingin dicari di kolom pencarian yang sudah disediakan, lalu tekan ENTER. Setelah itu, muncul banyak fungsi putStrLn yang tersedia di Haskell. Ya, satu fungsi di Haskell belum tentu hanya tersedia di satu module. Seperti contoh fungsi putStrLn tersedia di berbagai module dengan “perannya” masing-masing. Nah, sekarang, silakan lihat kata “putStrLn” di bagian base Prelude tepatnya hasil pencarian paling atas.

Prelude adalah module bawaan Haskell.

Kita akan melihat putStrLn :: String -> IO (). Bagian :: String -> IO ()adalah apa yang disebut dengan Type Signature. Bagian ini memberitahu apa-apa saja yang boleh menjadi input dari fungsi tersebut dan apa keluaran dari fungsi tersebut. Type Signature juga memberikan informasi berapa parameter fungsi tersebut. Cara membacanya, untuk output dari fungsi tersebut, cukup lihat kata terakhir setelah tanda ->. Pada kasus ini adalah IO (). IO ()maksudnya input-output atau di dalam Haskell disebut sebagai “Dunia Luar”. Artinya, fungsi tersebut akan memberikan sesuatu ke dunia luar. Untuk input dari fungsi tersebut, kita hanya perlu melihat kata-kata setelah :: dan sebelum bagian output. Pada kasus ini, setelah :: dan sebelum output tadi adalah String. Artinya, fungsi tersebut untuk tipe data string yang mana akan diolah ke “Dunia Luar”.

Contoh, replicate :: Int -> a -> [a]. Ada dua parameter, yaitu pada bagian Int -> a, Int dan a. Keluarannya adalah [a].

Apa itu a? Jawabannya, Type Variable. Artinya, pada parameter tersebut, bisa tipe data apapun. Kalau nanti bertemu dengan b, itu juga sama (Type Variable). Sederhanya, Type Variable menggunakan huruf kecil (lowercase). Sementara data type, menggunakan huruf kapital di depan (misal String).

Contoh lain, getLine :: IO String. Fungsi seperti ini tidak memiliki parameter. Artinya, fungsi ini berjalan tanpa membutuhkan parameter apapun yang kemudian keluarannya adalah berupa IO String. IO maksudnya input-output. Jadi, keluaran atau hasilnya berupa String dari “Dunia Luar”.

Seputar Type System sendiri masih banyak yang belum disebutkan. Tapi, sepertinya, beberapa penjelasan di atas sudah cukup untuk memulai eksplorasi ke dunia Haskell lebih jauh. Sekarang kita lanjut ke bagian berikutnya.

Tepat di bawah Type Signature ada informasi mengenai di module mana fungsi tersebut berada. Dengan ini, kita dapat melakukan import module secara tepat sesuai dengan kebutuhan.

Di bawah informasi module, ada beberapa penjelasan atau deskripsi mengenai fungsi tersebut. Nah, sekarang coba klik fungsi yang ingin dilihat lebih dalam. Bila beruntung, pada fungsi tersebut, ada contoh penggunaannya.

Berdasarkan informasi dari tulisan ini, sepertinya kamu sudah siap untuk eksplorasi fungsi-fungsi Haskell. Lalu, setelah melihat informasi di Hoogle, bagaimana cara pengaplikasiannya?

Mencoba Fungsi Berdasarkan Informasi Hoogle

Untuk mencoba fungsi tadi, gunakanlah Try Haskell. Misal, kita menemukan fungsi foldl. Type Signature-nya adalah foldl :: (a -> b -> a) -> a -> [b] -> a. Pada fungsi ini, ada parameter (a -> b -> a). Maksudnya, parameter tersebut adalah sebuah fungsi operasi yang membutuhkan dua operand. Contoh, 1 + 2 dimana 1 dan 2 adalah operand dan + adalah fungsi operasinya.

Nah, parameter foldl ada tiga sesuai dengan Type Signature-nya. Pertama, (a -> b -> a). Kedua, a. Dan ketiga, [b]. Maksud dari [b] adalah sebuah List (di Haskell bukan array, tapi list) dengan tipe data apapun (yang satu jenis, misal integer saja). Adapun keluarannya adalah a.

Sekarang, kita coba lakukan foldl (+) 0 [1..100]. Hasilnya adalah 5050. Satu lagi, foldl (++) [] ["Halo, ", "Haskell!"]. Hasilnya adalah "Halo, Haskell!".

Well, untuk saat ini itu saja. Karena jika terlalu banyak juga nanti kepala bisa-bisa “ngebul”. Sampai berjumpa di lain waktu! [cp/ap]

Berikan rating

Follow Trentech.id di Google News, Klik DI SINI

Tags: hooglemesin pencari
1.5k
VIEWS
Previous Post

Chatbot Tren Teknologi Bisnis 2017

Next Post

Tiga Cara Tepat Mewujudkan Ide Startup Menjadi Bisnis yang Menguntungkan

Related Posts

Pentingnya Kemampuan Komunikasi Bagi Seorang Programmer

24 December 2024
2.1k

Seorang programmer adalah orang yang terjun dan menyelami bidang TI. Berbicara tentang bidang keilmuan. TI adalah bidang keilmuan yang sangat...

Hacker Paling Berbahaya

Ini Dia 10 Hacker Paling Berbahaya Didunia

15 July 2024
2.1k

Pada awalnya, hacker pertama kalinya muncul dengan arti positif yaitu untuk menyebut seorang yang memiliki keahlian dalam bidang komputer dan...

Manfaat Belajar Bahasa Pemrograman untuk Kehidupan

7 Keterampilan Wajib Programmer Untuk 5-10 Tahun Ke Depan

21 March 2024
2.1k

Waktu terus berjalan, begitulah kehidupan. Kita sebagai programmer selalu dituntut untuk mengembangkan keterampilan di saat perkembangan industri TI terus berkembang...

Terpopuler

  • 1140-hiden-dangers-of-wi-fi.imgcache.rev.web.1100.633-832458b3

    3 Cara Memutus Koneksi Orang Lain dari Jaringan Wi-Fi Anda

    1250 shares
    Share 500 Tweet 313
  • Inilah 15 Skin Paling Keren di Mobile Legends

    380 shares
    Share 152 Tweet 95
  • Yuk Belajar Bikin Game dengan 10 Aplikasi Membuat Game Tanpa Perlu Bisa Coding

    210 shares
    Share 84 Tweet 53
  • HP Nokia Edge 2022 Mirip Iphone 13, Cek Harga dan Spesifikasi

    434 shares
    Share 174 Tweet 109
  • Ini Dia Cerita di Balik Para Hero Mobile Legends

    180 shares
    Share 72 Tweet 45
  • Cara Membeli Flipper Zero Indonesia

    345 shares
    Share 138 Tweet 86
  • Perjalanan GoTo Menuju Profitabilitas: Strategi Pengelolaan Biaya dan Inovasi Produk

    117 shares
    Share 47 Tweet 29
  • Martis Hero Baru Mobile Legends Sudah Muncul, Cek Sekarang!

    161 shares
    Share 64 Tweet 40
  • [Panduan Pemula] Cara Menghidupkan Voice Chat di Game Mobile Legends

    159 shares
    Share 64 Tweet 40
  • Compound, Solana, dan FXGuys terus Menunjukkan Harapan. Akankah Mereka Menjadi Token Teratas Q4?

    111 shares
    Share 44 Tweet 28

About . Contact . Partnership . Google News . Telegram

Trentech.id adalah situs yang menyajikan konten tentang startup, bisnis, game, event, hingga informasi pekerjaan. Trentech berusaha memberikan konten yang berkualitas untuk para pembacanya agar dapat menjadi rujukan utama mengenai dunia teknologi pada khususnya. Tim trentech terdiri dari orang – orang yang berkompeten dibidangnya, dan akan selalu mendukung karya – karya terbaik anak bangsa dengan memberikan kesempatan seluas-luasnya untuk para startup agar dapat publish karyanya di trentech.

Trentech ID

  • About
  • Contact
  • Advertising
  • Privacy Policy
  • Sitemap

Tools

  • Harga Crypto Terbaru
  • Cek Ongkir
  • Cek Resi
  • Cek Domain

Welcome Back!

Sign In with Facebook
Sign In with Google
OR

Login to your account below

Forgotten Password? Sign Up

Create New Account!

Sign Up with Facebook
Sign Up with Google
OR

Fill the forms below to register

All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In
  • Login
  • Sign Up
About . Contact . Partnership . Google News