Нахождение индекса элемента в списке в Haskell?

Существует другая опция, которая можно использовать, выполнить сценарий CLI... Это будет работать в фоновом режиме, и можно даже выполнить его как cronjob, если Вы хотите.

, например,

> #!/usr/bin/php -q

<?php

//process logs

?>

Это может быть установкой как cronjob и выполнит без ограничения времени.... это, примеры для основанной на Unix операционной системы все же.

к вашему сведению у меня есть сценарий PHP, работающий с бесконечным циклом, который делает некоторую обработку и работал в течение прошлых 3 месяцев не, останавливаются.

28
задан Don Stewart 18 April 2011 в 17:06
поделиться

2 ответа

Как найти индекс максимального элемента? Как насчет того, чтобы попробовать все индексы и проверить, являются ли они максимальными?

ghci> let maxIndex xs = head $ filter ((== maximum xs) . (xs !!)) [0..]

Но это похоже на то, для чего функция уже существует. Мой код будет более читабельным, обслуживаемым и, вероятно, даже более эффективным, если я буду использовать существующую функцию.

К вашему сведению, вы также можете спросить Hoogle , который может искать по сигнатурам типа Haskell (как предложил Уилл):

$ hoogle "Ord a => [a] -> Int" | head

<Nothing relevant>

$ # hmm, so no function to give me the index of maximum outright,
$ # but how about finding a specific element, and I give it the maximum?
$ hoogle "a -> [a] -> Int" | head
Data.List elemIndex :: Eq a => a -> [a] -> Maybe Int
Data.List elemIndices :: Eq a => a -> [a] -> [Int]
35
ответ дан 28 November 2019 в 02:35
поделиться
import Data.List
elemIndex 'b' "abc" === Just 1

Действительно хороший инструмент для поиска функций haskell - это Hoogle . Позволяет выполнять поиск среди прочего по сигнатуре типа.

Если вы хотите сделать все за один проход, я бы порекомендовал Data.List.mapAccumL, передав индекс самого большого числа, найденного на данный момент, в качестве аккумулятора.

33
ответ дан 28 November 2019 в 02:35
поделиться
Другие вопросы по тегам:

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