fork download
  1. decart2 po pre = map ((pre++) . (:[])) po
  2. decart l = foldl (\pre po -> concat $ map (decart2 po) pre) [[]] l
  3. main = print $ decart [["palto", "noski", "shapki"], ["red", "black", "white"], ["kozha", "meh", "aluminij"]]
Success #stdin #stdout 0s 5732KB
stdin
Standard input is empty
stdout
[["palto","red","kozha"],["palto","red","meh"],["palto","red","aluminij"],["palto","black","kozha"],["palto","black","meh"],["palto","black","aluminij"],["palto","white","kozha"],["palto","white","meh"],["palto","white","aluminij"],["noski","red","kozha"],["noski","red","meh"],["noski","red","aluminij"],["noski","black","kozha"],["noski","black","meh"],["noski","black","aluminij"],["noski","white","kozha"],["noski","white","meh"],["noski","white","aluminij"],["shapki","red","kozha"],["shapki","red","meh"],["shapki","red","aluminij"],["shapki","black","kozha"],["shapki","black","meh"],["shapki","black","aluminij"],["shapki","white","kozha"],["shapki","white","meh"],["shapki","white","aluminij"]]