我想創建一個函式來交換串列串列中每個串列的前兩個元素
例如:
swapElems [[1], [1,3]] == [[1],[3,1]]
或者
swapElems ["apple", "pear", "banana"] == ["paple","epar","abnana"]
到目前為止,我已經嘗試過:
swapElems [(x:y:xs),(z:u:zs),(t:i:ts)] = [(y:x:xs),(u:z:zs),(i:t:ts)]
swapElems [(x:y:xs),(z:u:zs)] = [(y:x:xs),(u:z:zs)]
swapElems [(x:y:xs)] =[(y:x:xs)]
swapElems [] = []
但這僅在我輸入一個包含 1 個或 2 個或 3 個串列的串列時才有效。
我需要一個適用于任意數量串列的解決方案。我怎樣才能以某種方式重寫它,以便無論我包含多少串列,它都能正常作業。
uj5u.com熱心網友回復:
我將從撰寫一個交換單個串列的兩個第一個元素的函式開始,例如:
swapTwoFirst (x:y:xs) = (y:x:xs)
swapTwoFirst xs = xs
接著:
swapElems = map swapTwoFirst
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/517134.html
標籤:哈斯克尔
下一篇:Haskell:掃描一個陣列
