İki resim için bir sendika işlevi oluşturmak istiyorum (tip dizgisi listeleri kullanılarak oluşturuldu.) İki listeyi birleştiren unionList işlevi oluşturarak başlattım.Haskell: liste birimini iyileştir
unionList :: String -> String -> String
unionList xs ys = xs ++ foldl (flip delete) ys xs
Bu nasıl çalışır, ama ben de istemiyorum. o bunu başarmak için nasıl yapıldığını üzerinde
input = unionList [’ ’,’ ’,’X’,’X’,’ ’] [’X’,’ ’,’X’,’ ’,’X’]
output = "X XXX"
herhangi fikirler:
nasıl bir şey çalışmak istiyorum.
DÜZENLEME: Nihayetinde iki resmin birleşimini oluşturmaya çalışıyorum.
image 1 = [" XX ", image 2 = ["XX XX", type Img = [String]
" X X ", " X ",
" XX "] "XX XX"]
^
örnekler
Input = (imgUnion (image 1) (image 2))
bana iki görüntülerin birliği vermelidir.
imgUnion
imgUnion :: Img -> Img -> Img
Bir çözümle başlayın. sadece uzunluk 1 listelerinde çalışır ve desen eşleştirmeyi kullanır (listelerde ve "Char" değişmezlerinde). Ne demek istediğimi anlamadıysanız Google "desen eşleme karması". Ardından, daha fazla durum (boş listeye eşleşecek şekilde) ve rasgele uzunluk listelerini desteklemek için "unionList" e özyinelemeli bir çağrı ekleyin. – jberryman
'zipWith''e bakın. –
@ReinHenrichs - zipWith'e baktım ve görüntü birliği için kullanacağım. ama sendikaList işlevini yukarıda tanımlandığı şekilde çalışmaya başlamak ve zipWith ile kullanmak istiyorum. – evian1