Öğrenme amaçları için kendi uyguladığım zipWith
işlevini yazmaya çalışıyorum. Bununla birlikte, kenar kasalarda _
ile desen eşleşmesiyle ilgili bir sorun yaşıyorum. Önce iyi vakayı, sonra da kötü durumu anlatacağım. Umarım birileri neden farklı davrandığını açıklayabilecektir.Joker karakterle eşleşen desenle ilgili birden fazla hata '
zipWith' :: (a -> b -> c) -> [a] -> [b] -> [c]
zipwith' _ [] _ = []
zipWith' _ _ [] = []
zipWith' f (x:xs) (y:ys) = f x y : zipWith' f xs ys
GHCi içinde Derleme: - -:
şöyle benzipWith
fonksiyonu yazarsanız, o inşaat Teşekkür
(hatlar 2 boş liste & 3 eşleşen uç örnekleri sırasını Not)
ghci> :l ZipWith.hs
[1 of 1] Compiling Main (ZipWith.hs, interpreted)
Tamam yukarıda gayet, henüz takas halinde GHCi çevresinde kenar durumlar için eş düzende hatlar 2 ve 4
için hata 'Çoklu bildirimleri' atar 10zipWith' :: (a -> b -> c) -> [a] -> [b] -> [c]
zipWith' _ _ [] = []
zipwith' _ [] _ = []
zipWith' f (x:xs) (y:ys) = f x y : zipWith' f xs ys
GHCi içinde Derleme: -
ZipWith.hs:4:0:
Multiple declarations of `Main.zipWith''
Declared at: ZipWith.hs:2:0
ZipWith.hs:4:0
Failed, modules loaded: none.
stumped ... hatları 2. ve 4. tarzlarına bakıldığında
- onlar birbirini dışlayan görünüyor ama belli ki bir şey eksik Burada temel neden 2 ve 3 numaralı satırlardaki kalıpları değiştirmek derleme hatasının kaybolmasına neden olur.
Oh, bu yazım hatası benim için çok utandırıcıdır, onu gördüğünüz için teşekkürler ve yanlış yorumumu açıklamamı açıklıyor. Hem Q hem de A için – Jabbslad
+1. Birisi kesinlikle Google’ı bu şekilde görecek ve bu cevabı görmek istiyor. –
Hata mesajına "muhtemelen yazım hatası" gibi bir şey eklemeliler. – fuz