say У меня есть список в haskell [2,4,6,8,9,4], и я хочу начать с первого элемента, а затем перепрыгнуть на один или два элемента и получить все возможные комбинации .so я должен получить список списков. поэтому для приведенного выше списка я хочу вернуть следующий список [[2,6,9], [2,6,4], [2,8,4]]. я написал до сих порСписок списков Haskell
paths :: [int] -> [int]
paths [] = []
paths [x]=[x]
paths (x:z:xs) = x:paths(xs)
но возвращает только один список, начиная с первого элемента, а затем прыгать на них. Поэтому я не знаю, как заставить его рекурсировать так, чтобы он перескакивал два и все для всех возможных прыжков.
Помощь приветствуется.
Обратите внимание, что 'int' соответствует любому типу (что хорошо в данном случае), так как она начинается со строчной буквы , Основной тип целочисленного размера слова - 'Int'. Все, что содержится в сигнатуре типа, начинающейся с строчной буквы, является переменной типа. –
Вы можете начать с функции, которая фактически возвращает список списков. Тип должен быть '[a] -> [[a]]'. –
Является ли '[2,8]' частью вывода для этого ввода? Если это не так, почему бы и нет? – Carl