[Haskell] productWith листов
От: Haskell.Curry  
Дата: 16.10.09 12:44
Оценка:
Нужное что-то вроде productWith листов, вот имплементация

apply :: [(C, C, C)] -> [(S, S, S)] -> [(CS, CS, CS)]
apply [] _ = []
apply _ [] = []
apply (x:xs) ys = apply' x ys ++ apply xs ys
   where
   apply' x@(x1, x2, x3) ((y1, y2, y3):ys) = (CS x1 y1, CS x2 y2, CS x3 y3) : apply' x ys
   apply' _ _ = []


Думаю, здесь нужно что-то вроде Applicative, чтобы сделать это элегантнее?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.