Ok, maybe the title is a little confusing, but what I am trying to do is have a function like this: f (a:b:c:d:is) = ...
but be able to refer to a:b:c:d
without writing it again. As it turns out, I can't do something like e@(a:b:c:d):is
and get the expected result. Any ideas?
The best I can think of is using view patterns, like this:
{-# LANGUAGE ViewPatterns #-}
f (splitAt 4 -> (as@[a,b,c,d], is)) = is ++ [d,c,b,a] ++ as