İsimlendirmemin burada doğru olup olmadığından tam olarak emin değilim, ama Haskell'de açgözlü bir zip işlevi olup olmadığını merak ediyordum. Bu benim zip'
açgözlü zip fonksiyonudur Haskell'in açgözlü bir zip (biri tüm öğeleri koruyan) var mı?
a = [1, 2, 3]
b = [4, 5]
zip' a b
#=> [(Just 1, Just 4),(Just 2, Just 5),(Just 3, Nothing)]
... olsaydı, o küpe uzun liste bir elemana sahip uzun listenin uzunluğu ve listesini döndürür, ama daha kısa olacağı anlamına gelir Liste
Nothing
, ilgili parça pozisyonuna getirilmez. Bunu nasıl yazacağımı sormuyorum, fakat bunun bir yerleşik olarak var olup olmadığını merak ediyordum.
İşte (özel ayrılmasıdır Either
aksine,) Açgözlü fermuar düzgünce münhasır olmayan ayrılma türü ile ifade edilebilir (muhtemelen büyük değil) benim uygulaması
zip' :: [a] -> [b] -> [(Maybe a, Maybe b)]
zip' (a:xs) [] = (Just a, Nothing) : zip' xs []
zip' [] (b:ys) = (Nothing, Just b) : zip' [] ys
zip' [] _ = []
zip' (a:xs) (b:ys) = (Just a, Just b) : zip' xs ys
İmzayla arama. –
@KarolyHorvath Üzgünüm. Ne demek istediğini anlamadım. –
https://www.haskell.org/hoogle/ –