Если у меня есть две строки, я использую понимание списка, чтобы получить желаемый результат:
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]
, но это не удается из-за [] в первом предложении.Может кто-нибудь помочь мне написать это, пожалуйста?