Dipecahkan: int mengapung

Pembaharuan Terakhir: 09/11/2023

Memahami konversi dari satu tipe data ke tipe data lainnya merupakan aspek mendasar dari setiap bahasa pemrograman. Di Haskell, bahasa pemrograman fungsional yang diketik secara statis, tidak terkecuali konversi tipe data, terutama ketika bekerja dengan tipe numerik seperti bilangan bulat (Int) dan titik mengambang (Float). Artikel ini membahas proses konversi dari Int ke Float di Haskell, menjelaskan fungsi yang terlibat, perilaku komputer, dan penjelasan langkah demi langkah yang mendetail.

Konversi dari Int ke Float di Haskell

Di Haskell, konversi tipe tidak dapat terjadi secara implisit. Hal ini mencerminkan sifat Haskell yang sangat mengetik, di mana variabel tidak dapat diubah kecuali ditentukan oleh pemrogram. Fungsi 'dariIntegral' adalah pendekatan yang diterapkan Haskell untuk mengelola konversi antara tipe Integral seperti Int, dan tipe non-Integral seperti Float. Ini menghilangkan potensi kehilangan data dengan mengubah bilangan bulat menjadi float, karena float memiliki jangkauan yang lebih luas.

convertIntToFloat :: Int -> Float
convertIntToFloat intValue = fromIntegral intValue 

Cuplikan kode sederhana ini mendefinisikan fungsi `convertIntToFloat` yang mengubah bilangan bulat menjadi float menggunakan 'fromIntegral'. Perlu dicatat bahwa 'fromIntegral' mengambil nilai tipe Integral dan mengembalikan tipe Num generik, yang merupakan milik Float.

Memahami fungsi-fungsi yang terlibat

  • dariIntegral: Fungsi ini adalah fungsi bawaan di Haskell yang termasuk dalam kelas 'Num'. Ini mengkonversi tipe numerik, khususnya tipe Integral seperti Int, ke tipe bilangan umum seperti Float.
  • (::) Ketik Anotasi: Ini digunakan untuk menentukan jenis ekspresi di Haskell. Hal ini sangat penting dalam fungsi kita di mana kita harus menyatakan bahwa 'convertIntToFloat' mengambil Int dan mengembalikan Float.

Sekarang setelah kita melihat lebih dekat implementasinya dan menelusuri entitas yang terlibat, mari kita pahami hal ini dengan contoh nyata.

Penjelasan Kode Langkah-demi-Langkah

Misalkan kita mempunyai bilangan bulat 25 dan ingin mengonversinya menjadi float, kita cukup menggunakan fungsi `convertIntToFloat` sebagai berikut:

main = print (convertIntToFloat 25)

Ini akan mencetak: 25.0

Berikut cara Haskell menangani konversi ini secara internal:

1. Langkah 1: Bilangan bulat 25 diteruskan ke fungsi `convertIntToFloat`.
2. Langkah 2: 'fromIntegral' mengambil 25 sebagai input, yang merupakan 'Int' (tipe Integral).
3. Langkah 3: 'fromIntegral' mengembalikan tipe 'Num'. Karena Float adalah bagian dari kelas 'Num' dan diharapkan dari fungsi tersebut (seperti yang dilambangkan dengan anotasi :: type), Haskell menerjemahkannya menjadi float.
4. Langkah 4: Versi float 25 (25.0) dikembalikan dan dicetak.

Jelajahi lebih banyak Perpustakaan dan Fungsi

Sifat Haskell yang sangat mengetik dan dukungan perpustakaan yang luas menyediakan lebih banyak cara untuk memanipulasi dan mengonversi tipe. Selain 'fromIntegral', Haskell memiliki 'toInteger', 'realToFrac' dan banyak lagi untuk membantu konversi tipe. Selain itu, Platform dan Perpustakaan Haskell seperti 'base' menawarkan banyak modul yang berkaitan dengan tipe angka dan konversi, yang perlu ditelusuri untuk setiap programmer Haskell.

Menyelam jauh ke dalam perpustakaan Haskell dan memahami sistem tipe menciptakan landasan yang kuat untuk membuat program yang kuat dan bebas kesalahan yang memanipulasi data kompleks. Akibatnya, menawarkan kemungkinan tak terbatas untuk memperluas kotak peralatan pemrogram Haskell.

Pos terkait: