Как называется «const 'в haskell prelude?

, глядя через haskell prelude, я см. Функция const :

const x _ = x

Я не могу находить ничего актуального относительно этой функции Отказ

Какой смысл? Может ли кто-нибудь привести пример того, где эта функция может быть использована?

87
задан Ben 13 June 2016 в 16:57
поделиться

2 ответа

Скажите, что Вы хотите повернуть список. Это - идиоматический способ сделать так в Haskell:

rotate :: Int -> [a] -> [a] rotate _ [] = [] rotate n xs = zipWith const (drop n (cycle xs)) xs

Эта функция архивирует два массива с функцией const, при этом первым является бесконечный циклический массив, при этом вторым является массив, Вы запустили с.

const действия как граничная проверка и использование исходный массив для завершения циклического массива.

См.: Поворачивают список в Haskell

0
ответ дан 24 November 2019 в 07:47
поделиться

я, может казаться, ничто не нахожу релевантным относительно этой функции.

предположим требуется генерировать все подпоследовательности данного списка.

Для каждого элемента списка, в данной точке у Вас есть выбор Истинных (включайте его в текущую подпоследовательность), или Ложь (не включают его). Это может быть сделано с помощью функция filterM.

Как это:

 λ> import Control.Monad
 λ> :t filterM
 filterM :: Applicative m => (a -> m Bool) -> [a] -> m [a]
 λ> 

, Например, мы хотим все подпоследовательности [1..4].

 λ> filterM  (const [True, False])  [1..4]
 [[1,2,3,4],[1,2,3],[1,2,4],[1,2],[1,3,4],[1,3],[1,4],[1],[2,3,4],[2,3],[2,4],[2],[3,4],[3],[4],[]]
 λ> 
0
ответ дан 24 November 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: