On Mon, Apr 07, 2008 at 07:51:05PM -0700, Jackm139 wrote: > I have an assignment to make a program to test whether two lists use the > same characters for each string. > e.g. > > sameCharacter ["rock", "cab"] ["cork", "abc"] > True > > My plan to tackle this was to use: > nub to eliminate duplications, > sort to put the characters in order, > and map to put characters together.. and then somehow check to see if these > characters are the same.
Probably you won't need to eliminate duplicates, sorting would be enough (although it depends on the assignment details). Comparing Chars (and Strings) can be accomplished with > (==) :: (Eq a) => a -> a -> Bool > My problem right now is just figuring out how to make a function that uses > these three functions to give me a list of tuples. To get list of tuples you can use > zip :: [a] -> [b] -> [(a, b)] or alternatively you can apply a binary function in a "pairwise way" using > zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] as in > zipWith (+) [1, 2] [3, 4] > [4, 6] For chaining functions you can use function composition: > (.) :: (b -> c) -> (a -> b) -> a -> c as in > not :: Bool -> Bool > and :: [Bool] -> Bool > nand :: [Bool] -> Bool > nand = not . and or do without composition by specifying all arguments: > nand xs = not (and xs) Hope this helps, -- Krzysztof Kościuszkiewicz Skype: dr.vee, Gadu: 111851, Jabber: [EMAIL PROTECTED] "Simplicity is the ultimate sophistication" -- Leonardo da Vinci _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
