Если у меня есть две строки, я использую понимание списка для получения желаемого результата:
combineStrings firstStr sndStr = [ [a,b] | a <- firstStr, b <- sndStr]
Для трех строк я использую это
combineStrings firstStr sndStr trdStr = [ [a,b,c] | a <- firstStr, b <- sndStr, c <- trdStr]
Я пытаюсь получить тот же результат для переменного количества строк. Например, если у меня есть функция, которая принимает следующую форму:
combineStrings :: [String] -> [String]
Я пытаюсь получить те же результаты, что и выше, для 2, 3 ... n списков ... Я пробовал несколько способов, например этот
combineStrings [] = []
combineStrings (hd:tl) = [ a:b | a <- hd, b <- combineStrings tl]
но это не удается из-за [] в первом предложении. Может кто-нибудь помочь мне написать это, пожалуйста?