Как отделить список чисел, повторяющихся в haskell?Как отделить список чисел, повторяющихся в haskell?
пример:
отдельный [1,1,1,2,3,3,4] -> [[1,1,1,1], [2], [3,3], [ 4]]
Как отделить список чисел, повторяющихся в haskell?Как отделить список чисел, повторяющихся в haskell?
пример:
отдельный [1,1,1,2,3,3,4] -> [[1,1,1,1], [2], [3,3], [ 4]]
Ответ groupBy (==)
Игнорировать эти слова, Stackoverflow требует от меня, чтобы напечатать еще несколько слов
Я стараюсь не отвечать на вопрос, но ответить, как ответить на этот вопрос. Надеюсь, это поможет, но не слишком. (edit: Я предположил, что это была домашняя работа, вы можете сказать мне, хотите ли вы получить еще один ответ.)
Сначала попробуйте определить тип функции.
separate :: ...
Подумайте об угловых случаях, таких как пустые списки и списки с одним элементом.
separate [] = ...
separate [x] = ...
Затем попытайтесь определить эту функцию рекурсивно (в терминах самого себя).
separate (x:xs) = <an expression containing separate, x, and xs>
В зависимости от деталей реализации, результат separate [3,2,3,1]
может быть [[1],[2],[3,3]]
, [[3],[2],[3],[1]]
(если вы используете group
, которые вы не предполагается), или [[3,3],[2],[1]]
. Возможно, вам придется прояснить это, если кто-нибудь попросит вас написать эту функцию.
http://hackage.haskell.org/package/base-4.6.0.1/docs/Data-List.html
Если вы используете GHCI, вы можете использовать :m +module
импортировать module
. Пример сеанса с GHCi может выглядеть так:
$ ghci
GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> :m +Data.List
Prelude Data.List> groupBy (==) [1,1,2,3]
[[1,1],[2],[3]]
Вы предпринимали какие-либо попытки? – megawac
Похоже, это домашнее задание, и политика здесь заключается в том, чтобы помочь попыткам людей в их работе, но на самом деле не делает для них работу. Не могли бы вы опубликовать, что вы попробовали? – amindfv
не является домашним заданием. Я пытаюсь применить дискретную математику в haskell – Gosh