169 похожих чатов

Darth Vader: Добрый день. Возможно вопрос не по теме, но может

кто-то знает - Haskell

Задача - найти самую длинную непрерывную цепочку отрицательных чётных чисел. чисел до 10^6, каждое число по модулю до 10^9.

моё решение (не самое идеальное) ниже. Вопрос в том, что почему-то вылетает по памяти. Может ли кто-нибудь посоветовать литературу об аллокации памяти в хаскеле? сам код:

int :: Char -> Int
int x = (read [x]) :: Int

isLastEven :: [Char] -> (Bool, [Char])
isLastEven [] = (False,[])
isLastEven (x:[]) = (even $ int x,[])
isLastEven (x:' ':xs) = (even $ int x, xs)
isLastEven (x:xs) = isLastEven xs

skip :: [Char] -> [Char]
skip [] = []
skip (' ':xs) = xs
skip (_:xs) = xs

count :: Integer -> Integer -> [Char] -> Integer
count mx cur [] = max cur mx
count mx cur ('-':xs) =
let (isEven, tail) = isLastEven xs
in if isEven then count mx (cur + 1) tail else count (max mx cur) 0 tail
count mx cur (_:xs) = count (max cur mx) 0 $ skip xs

main :: IO ()
main = do
-- x <- getLine
-- ln <- getLine
let ln = tail $ concat [" -999999998" | i <- [1..1000000]]
putStrLn $ show $ count 0 0 ln

1 ответов

9 просмотров

для кода на хаскеле есть чат хаскеля - haskellru

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

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
48
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
11
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
Утра доброго. Просветите пожалуйста. Хочу сделать rest сервер на делфи. Посмотрел 3 фреймворка: dmvc, Mars, mormot. Ни в одном из них не упоминается ассинхронная обработка вхо...
Сергей Бычков
10
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
вопрос странный немного... в секции interface идёт константа const TableExt: array [0..39] of record _type: byte; _ext : string; end = ( (_type:typeDAT ...
Alexey Kulakov
5
Всем привет! Помогите разобраться с Lazarus. Переношу программу с Delphi 10.2 Tokyo на Lazarus 3.2. У меня есть строка string которая изначально имеет такое содержание (то чт...
Дмитрий Завгородний
4
Карта сайта