
* -- first I need to find the positions of the mutatable charachters.
* findPositions :: [Char] -> [[Int]] *>* findPositions xs = take (length index) $ index <*> [xs] *>* where index = elemIndices <$> leata
He Daniel. I have some trouble understanding what you are saying here: * No, you don't need to do that, it's in general more efficient to not care about positions when dealing with lists. * [f1, ..., fm] <*> [x1, ..., xn] produces a list of length m*n, so length (index <*> [xs]) == length index * length [xs] == length index ~> remove "take (length index) $" About this piece of code: fmap snd <$> fmap unzip <$> p Prelude Control.Applicative> let p = [[[(1,2),(3,4),(4,5)]]] Prelude Control.Applicative> fmap snd <$> fmap unzip <$> p [[[2,4,5]]] Prelude Control.Applicative> But yeah, it is ridiculously complicated. And I made it up by trial and error and looking at the types. I have a better approach now. I am now building a tree and then walk trough it to collect all the permutations. Thanks for your help and effort! Edgar
participants (1)
-
edgar klerks