我想爲兩個圖像創建一個聯合函數(使用字符串類型的列表創建)。我已經開始創建一個unionList函數,該函數組合了兩個列表。Haskell:改進列表union
unionList :: String -> String -> String
unionList xs ys = xs ++ foldl (flip delete) ys xs
這有效,但不是我想要的。
我希望它像工作:
input = unionList [’ ’,’ ’,’X’,’X’,’ ’] [’X’,’ ’,’X’,’ ’,’X’]
output = "X XXX"
它是如何做來實現這個任何想法。
編輯:我最終試圖創建兩個圖像的聯盟。
image 1 = [" XX ", image 2 = ["XX XX", type Img = [String]
" X X ", " X ",
" XX "] "XX XX"]
^
例子
Input = (imgUnion (image 1) (image 2))
應該給我兩個圖像的結合。
imgUnion定義爲
imgUnion :: Img -> Img -> Img
從一個解決方案開始僅適用於長度爲1的列表,並使用模式匹配(在列表和「字符」文字上)。如果你不明白我的意思,Google「模式匹配haskell」。然後添加更多的案例(以匹配空列表)和對'unionList'的遞歸調用來支持任意長度的列表。 – jberryman
看看'zipWith'。 –
@ReinHenrichs - 我看着zipWith並將其用於圖像聯合。但我想讓unionList函數按照上面的定義工作,並在zipWith中使用它。 – evian1