Saya baru mengenal Haskell dan setelah memulai ghci
saya mencoba:
f x = 2 * x
dan saya memperoleh:
<interactive>:1:4: parse error on input `='
yang saya tidak mengerti.
Anehnya, ini berhasil dengan baik sebelumnya. Saya kira saya telah melakukan kesalahan konfigurasi pada Haskell. Menginstal ulang ghc6 tidak menyelesaikan masalah.
Sebagai informasi, saya menggunakan Ubuntu 10.4 dan versi ghc6 adalah 6.12.1-12
let
contohnyaLYAH
tidak sekarang menyebutkanlet
. Tapi tindak lanjut. DiLYAH
saya membacaaddThree :: Int -> Int -> Int -> Int
(baris baru)addThree x y z = x + y + z
tetapi hanya yang kedua berjalanGHCi
denganlet
. Mengapa?Saat Anda mengetik di file sumber Haskell,
benar.
Saat Anda mengetik langsung ke ghci, Anda perlu mengetik
let
di awal baris:sumber
let
. Pikirkan GHCi sebagai satulet ... in ...
pernyataan besar .Aturan praktis yang baik untuk menggunakan ghci adalah bahwa kode apa pun yang Anda masukkan harus sesuai dengan semantik do-block; yaitu, Anda dapat berasumsi secara sintaksis bahwa Anda memprogram dalam monad IO (jika ini adalah terminologi baru, jangan khawatir! Saya sangat merekomendasikan membaca tutorial ini ).
Ini jawaban menggambarkan hal ini dengan sebuah contoh, dan dapat memberikan wawasan yang lebih bekerja ke dalam sifat IO dan ghci.
sumber
let
; Saya seperti "wtf, mengapa saya harus menggunakanlet
" dan kemudian saya membaca ini dan tercerahkan.Mulai GHC 8.0.1 ini tidak lagi menghasilkan kesalahan.
sumber