[Haskell-cafe] Review request for my permutations implementation
CK Kashyap
ck_kashyap at yahoo.com
Thu Jan 7 03:37:42 EST 2010
Hi All,
I've written this piece of code to do permutations -
perms :: String -> [String]
perms []= []
perms (x:[])= [[x]]
perms (x:xs)= concat (f [x] (perms xs))
spread :: String -> String -> [String] -- interpolate first string at various positions of second string
spread str1 str2 = _spread str1 str2 (length str2)
where
_spread str1 str2 0= [str1 ++ str2]
_spread str1 str2 n= [(take n str2) ++ str1 ++ (drop n str2)] ++ (_spread str1 str2 (n-1))
f xs = map (spread xs)
The number of outcomes seem to indicate that correctness of the algo .. however, I'd be very obliged
if I could get some feedback on the Haskellness etc of this ... also any performance pointers ...
Regards,
Kashyap
More information about the Haskell-Cafe
mailing list